在Linux中重命名文件名与列表
问题描述:
我想重命名一个目录中的所有文件文件名是1.ABC,2.ABC,3.ABC等我想将它们重命名为1.abc,2.abc, 3.abc ....等等。在Linux中重命名文件名与列表
我已经试过
ls -1 *.ABC| xargs -I{} mv {} ${{}/ABC/abc}
但是这似乎并没有工作,没有给出误差
bash: ${{}/ABC/abc}: bad substitution.
我想也重命名命令,但似乎并没有被我的系统上运行:
rename 's/\.ABC$/.abc/' *.ABC
不给我结果。如果可以纠正,我想坚持使用第一种方法。
答
如果你有rename
工具,那么你可以这样做:
rename 's/ABC/abc/' *.ABC
否则你可以使用这个简单的for
循环:
for file in *.ABC; do
mv "$file" "${file/.*/.abc}"
done
另请参阅[为什么你不应该解析输出(1)](http://mywiki.wooledge.org/ParsingLs)以及Unix和Linux SE问题[为什么*不*解析'ls'?](https://unix.stackexchange.com/q/ 128985/1986) –