使用命令行批量重命名

时间:2016-10-24 13:28:05

标签: command-line rename mv

我有一些文件:file1.txtfile2.txt,我想将它们重命名为:file1.something.txtfile2.something.txt 我找了一些类似的问题,我想出了这个:

for i in file*.txt; do echo  mv $i file*.something.txt; done

但不幸的是输出是:

mv file1.txt file*.something.txt

mv file2.txt file*.something.txt

因此只创建了1个文件。 可以请别人帮忙吗? (我使用的是macbook air,我不确定这是否相关) 非常感谢你

1 个答案:

答案 0 :(得分:0)

试试这个:

rename -n 's/\.txt/something.txt' *

(当你的测试没问题时删除-n开关)

warning http://pix.toile-libre.org/upload/original/1377510865.png 还有其他同名工具可能会或可能不会这样做,所以要小心。

如果您运行以下命令(GNU

$ file "$(readlink -f "$(type -p rename)")"

你有一个像

的结果
.../rename: Perl script, ASCII text executable

且不包含:

ELF

然后这似乎是正确的工具=)

如果没有,请将其设为Debian上的默认值(通常已经是这种情况)和Ubuntu之类的衍生物:

$ sudo update-alternatives --set rename /path/to/rename

(将/path/to/rename替换为perl's rename命令的路径。

如果您没有此命令,请搜索软件包管理器进行安装或do it manually

最后但并非最不重要的是,这个工具最初是由Perl的父亲Larry Wall编写的。