我有一个大型unix文件服务器,其中包含一个大型SMB共享。它服务于Mac、Linux和windows客户端。此框中很大一部分文件是从Mac迁移到那里的。备份共享的方式之一是通过Windows框。如果文件名中有它不喜欢的字符,那么特定的备份软件就会失败。
我已经解决了大多数文件名问题,但我正在努力处理以点结尾的文件。例如:
filename.newfile.txt.stupid old file.我正试图找到一种方法来批量重命名以点结尾的所有文件,使其没有点的同名。所以filename.变成了filename
find . -name "*."能找到这些文件。我试过用管道穿过sed:
find . -name "*." | sed 's/.$//'它在控制台中执行任务,但实际上不重命名文件。这就是我一直在纠结的地方。
发布于 2014-03-27 16:49:02
如果您有Perl脚本版本的rename (称为rename或prename):
rename 's/\.$//' *.或者util版本(称为rename或rename-ul):
rename . '' *.如果您在没有参数的情况下运行该命令,并获得类似于:
用途:重命名-v -f perlexpr 文件名
然后是Perl脚本版本。
类似于:
rename.ul:没有足够的参数使用: rename.ul 选项表达式替换文件选项:-v,-详细解释正在执行的操作-V,-版本输出版本信息和退出-h,-帮助显示此帮助和退出
意味着它是util版本。
https://serverfault.com/questions/584506
复制相似问题