在Linux中使用列表重命名文件名
我想重命名目录中的所有文件文件名为1.ABC、2.ABC、3.ABC等等我想将它们重命名为1.ABC、2.ABC、3.ABC。。。。等等 我试过了在Linux中使用列表重命名文件名,linux,bash,rename,Linux,Bash,Rename,我想重命名目录中的所有文件文件名为1.ABC、2.ABC、3.ABC等等我想将它们重命名为1.ABC、2.ABC、3.ABC。。。。等等 我试过了 ls -1 *.ABC| xargs -I{} mv {} ${{}/ABC/abc} 但这似乎不起作用,因为会产生错误 bash: ${{}/ABC/abc}: bad substitution. 我还尝试了重命名命令,但该命令似乎没有在我的系统上运行: rename 's/\.ABC$/.abc/' *.ABC 没有结果。如果可以纠正
ls -1 *.ABC| xargs -I{} mv {} ${{}/ABC/abc}
但这似乎不起作用,因为会产生错误
bash: ${{}/ABC/abc}: bad substitution.
我还尝试了重命名命令,但该命令似乎没有在我的系统上运行:
rename 's/\.ABC$/.abc/' *.ABC
没有结果。如果可以纠正的话,我想继续使用我尝试过的第一种方法。如果您有
重命名
实用程序,那么您可以执行以下操作:
rename 's/ABC/abc/' *.ABC
或者,您可以将此简单的用于循环:
for file in *.ABC; do
mv "$file" "${file/.*/.abc}"
done
还可以看到Unix和Linux SE的问题,谢谢anubhava,我实际上知道这个方法。实际上,我在我的第一种方法ls-1*.ABC|xargs-I{mv}${{}/ABC/ABC}
中寻找一个更正,但我认为它只能在重命名时附加文件名时使用,而不能在ls-1*.ABC|xargs-I{mv}中替换或删除新文件名中的部分字符串时使用_bkp
通常,您应该避免解析ls的输出