繁体   English   中英

bash脚本编写-使用查找/重命名在子目录中重命名文件时遇到麻烦

[英]bash scripting - trouble renaming files in subdirectories using find / rename

我有大量的目录和子目录,其中包含许多jpg。 我需要做两件事:

  1. 创建在其自己的子目录中找到的每个jpg的副本
  2. 重命名此复制的jpg,以便apple.jpg变为apple_m.jpg

我尝试按顺序运行以下命令:

//这将为找到的每个jpg创建一个副本,并将'_m'附加到其末尾

find . -name '*.jpg' -execdir cp {} {}_m \;

//现在再次找到所有以'jpg_m'结尾的内容,并将其重命名为filename_m.jpg

find . -name '*.jpg_m' -execdir rename -v 's/\.jpg_m/_m\.jpg/' {} \;

但是第二条命令似乎无效,有人可以解释我在做什么错吗?

谢谢阿迪

要重命名文件,只需使用这种方式即可rename ".jpg_m" "_m.jpg" files_to_rename

因此,如果要复制和重命名,则可以通过以下方式重命名:

find . -name "*.jpg_m" -execdir rename ".jpg_m" "_m.jpg" {} \;

您为什么不一口气做到呢?

find . -name '*.jpg' -exec cp {} m_{} \; -exec rename "m_" "" {} \;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM