我想重命名当前目录中的所有文件。所以现在他们的形式是:“xxx-9666_01.so”,我想将其重命名为“xxx_9444_01.so”。我如何在Linux中完成它?
答案 0 :(得分:0)
使用循环:
for f in *-9666_01.so; do
echo mv "$f" "${f%-9666_01.so}_9444_01.so"
done
当您确定它正在执行您希望的操作时,请移除echo
。
答案 1 :(得分:0)
使用参数扩展与子字符串替换(与子字符串删除相对)的上一个答案的变体可以实现相同的目标,并且可能更具可读性:
for f in *-9666_01.so; do
echo mv "$f" "${f/-9666/-9444}"
done
(如果对操作感到满意,请删除echo
)
(其中子字符串替换将a
中的b
替换f
,使用${f/a/b}
表格(结束/
暗示)将a
的第一个实例替换为b
,或${f//a/b}
替换 a
的所有实例与b
)