递归重命名" video.mp4"到" video_old.mp4"

时间:2017-05-01 09:20:44

标签: recursion command-line-interface rename zsh

我在成千上万个子目录中有数千个文件,其名称为" video.mp4"我需要将它们重命名为" video_old.mp4"

由于我不想开始一个失败或导致问题的过程,我只是在寻找一个我认为是正确命令的命令验证。

find . -iname "video*" -exec rename video_old.mp4 .mp4 '{}' \;

如果这不是最好的方法,请帮我写一个更好的命令。

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题find . -iname 'video*.mp4' -exec bash -c 'mv $0 ${0/\.mp4/_old.mp4}' {} \;

答案 1 :(得分:0)

如果您有权使用void updateEntry(Entry ** entryLookup, unsigned int id, int val1, short val2) { Entry * entry = __sync_fetch_and_add(&entryLookup[id], sizeof(Entry)); entry->val1 = val1; entry->val2 = val2; } Perl 命令,则可以使用它:

renrem

注意:

我假设你的文件名是:find . -name \*.mp4 | rename -v -n 's/(?=.mp4)/_old/' 。重命名命令将在name-file.mp4之前与.匹配,然后在其之前添加mp4:例如:
_old ==> file.mp4
确保一切正常后,删除file_old.mp4参数

-n:无操作:打印要重命名的文件名,但不要重命名

screen-shot

如果您无法访问-n perl文件。您可以在C ++ here is the link中使用我的rename程序。但它还不支持管道