Recursion 递归重命名";视频.mp4“;至;视频“U old.mp4”;
我在数千个子目录中有数千个文件名为“video.mp4”,我需要将它们重命名为“video_old.mp4” 因为我不想启动一个会失败或导致问题的进程,所以我只是想验证我认为正确的命令Recursion 递归重命名";视频.mp4“;至;视频“U old.mp4”;,recursion,command-line-interface,rename,zsh,Recursion,Command Line Interface,Rename,Zsh,我在数千个子目录中有数千个文件名为“video.mp4”,我需要将它们重命名为“video_old.mp4” 因为我不想启动一个会失败或导致问题的进程,所以我只是想验证我认为正确的命令 find-iname“video*”-exec重命名video\u old.mp4.mp4'{}\ 如果这不是最好的方法,请帮助我编写一个更好的命令。这应该可以做到,find-iname'video*.mp4'-execbash-c'mv$0${0/\.mp4/{u old.mp4}'{}如果您有权访问renre
find-iname“video*”-exec重命名video\u old.mp4.mp4'{}\代码>
如果这不是最好的方法,请帮助我编写一个更好的命令。这应该可以做到,find-iname'video*.mp4'-execbash-c'mv$0${0/\.mp4/{u old.mp4}'{}
如果您有权访问renrem
Perl命令,则可以使用它:
find . -name \*.mp4 | rename -v -n 's/(?=.mp4)/_old/'
注:
我假定您的文件名为:name file.mp4
。重命名命令将匹配mp4
之前的
,然后将\u old
添加到它之前:如:
文件.mp4
==>文件\u旧的.mp4
确保一切正常后,删除-n
参数
-n
:无操作:打印要重命名的文件名,但不重命名
如果您无法访问重命名perl文件。你可以在C++中使用我的代码> ReReMe>代码>程序。但是它还不支持pipe不,所有文件的名称都是准确的video.mp4
。我需要做的是将\u old
附加在单词视频
之后和.mp4
扩展名之前。-n
参数做什么?我假设renrem
是一个打字错误,您的意思是说重命名
?我确实有权访问重命名
,所以这不是问题。感谢您对-n
参数的澄清。我是在尝试您的命令时得到的:使用表达式:sub{use feature':5.24';s/(?=.mp4)/_old/}