linux – 为所有图像添加前缀(递归)
我有一个包含超过5000张图像的文件夹,全部都带有JPG扩展名.
我想要做的是递归地将“thumb_”前缀添加到所有图像. 我发现了一个类似的问题:Rename Files and Directories (Add Prefix),但我只想在带有JPG扩展名的文件中添加前缀. 解决方法
可能的解决方案之一:
find . -name '*.jpg' -printf "'%p' '%h/thumb_%f'n" | xargs -n2 echo mv Principe:找到所有需要的文件,并为标准mv命令准备参数. 笔记: > mv的参数被’包围’允许文件名中的空格包围. 任何文件名重命名.在shell中你需要一个分隔符.问题是,文件名(存储在shell变量中)通常可以包含分隔符本身,因此: mv $file $newfile #will fail,if the filename contains space,TAB or newline mv "$file" "$newfile" #will fail,if the any of the filenames contains " 正确的解决方案是: >使用正确的转义准备文件名 使用它的内部printf和%q格式化指令=打印引用,可以在bash中准备正确的转义.但这个解决方案漫长而无聊. 恕我直言,最简单的方法是使用perl和零填充print0,就像下一个. find . -name *.jpg -print0 | perl -MFile::Basename -0nle 'rename $_,dirname($_)."/thumb_".basename($_)' 以上使用perl的功能来修改文件名,最后重命名文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |