我想复制并重命名文件夹中与此模式匹配的所有文件:
所有文件的共同点都是.mp4.small.mp4
。
我想将它们复制到新文件夹并重命名 - 结果应为:
尝试:
find . -name '*.mp4.small.mp4' -exec bash -c 'echo cp $0 ${0/PATH/}' {} \;
但这并没有重命名。
答案 0 :(得分:1)
使用参数扩展语法从语法.
的开头到分隔符${word%string}
中删除最短的字符串为
find . -name '*.mp4.small.mp4' -exec bash -c 'echo cp $0 ${0%.mp4.small.mp4}.mp4' {} \;
此外,我假设您明知添加了echo
,以解决重命名字符串的外观问题。要实际复制文件,请将其放在最终命令中。
答案 1 :(得分:0)
rename 's/.mp4.small//' *mp4.small.mp4
默认不会覆盖。
进行测试以确保:
ls *mp4.small.mp4 | sed 's/.mp4.small//' #list resulting file names