[英]issue with changing file extensions with bash
find /path/to/files -type f -not -name "M*'.jpg" -exec mv "{}" "{}".mxg \;
我擔心我犯了兩個錯誤。
文件存儲在目錄結構中。 目標是保留文件名並將文件擴展名從.jpg更改為.mxg。 但僅適用於以“ M”作為文件名首字符的文件。
上一行具有以下結果:
應該這樣做:
find /path/to/files -type f -name 'M*.jpg' -exec bash -c 'echo mv "$1" "${1/jpg/mxg}"' -- {} \;
一個更干凈的解決方案是,如果您具有rename
命令。 但是,那里有不同的實現,因此請先閱讀man
頁,以檢查您與我的man
是否相同。 我在Debian中使用的版本是Larry Wall在perl
的實現。 您可以通過示例在頂部附近rename 's/\\.bak$//' *.bak
或在底部附近rename 's/\\.bak$//' *.bak
AUTHOR部分來識別這一點。 通過此實現,您可以像這樣重命名文件:
find /path/to/files -type f -name 'M*.jpg' -exec rename 's/jpg$/mxg/' {} \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.