簡體   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