我要复制并重命名与此模式匹配的文件夹中的所有文件:
测试.mp4.small.mp4
测试2.mp4.small.mp4
测试3.mp4.small.mp4
所有文件都以.mp4.small.mp4结尾。
我想将它们复制到一个新文件夹并重命名它们-结果应该是:
测试.mp4
测试2.mp4
测试3.mp4
尝试:

find . -name '*.mp4.small.mp4' -exec bash -c 'echo cp $0 ${0/PATH/}' {} \;

但这并不能重命名它。

最佳答案

使用参数扩展语法删除语法.中从开始到分隔符${word%string}的最短字符串

find . -name '*.mp4.small.mp4' -exec bash -c 'echo cp $0 ${0%.mp4.small.mp4}.mp4' {} \;

另外,我假设您故意添加了echo来解决重命名字符串的外观问题。若要实际复制文件,请将其放到最终命令中。

关于linux - 删除多个文件中的通用字符串并复制它们,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48440651/

10-14 05:56