[英]Bash: move and rename files to parent directory
我有以下工作代碼:
for f in */*/*.jpg; do rename 's#/picture#p#' "$f"; done &&
for f in */*.jpg; do rename 's#/subfolder#s#' "$f"; done
但是,這不適用於以下重命名版本: https://linux.die.net/man/1/rename
以下文件夾結構:
folder1/subfolder1/picture1.png
folder1/subfolder2/picture1.png
folder1/subfolder2/picture2.png
folder2/subfolder1/picture1.png
應該轉換成下面的結構
f1s1p1.png
f1s2p1.png
f1s2p2.png
f2s1p1.png
查看您自己鏈接的重命名手冊頁:該命令采用兩個字符串“from”和“to”(加上文件列表)。
概要
重命名為文件...
您可以嘗試以下操作:
for f in */*.jpg */*/*.jpg; do mv "$f" "$(echo $f | sed 's/\([a-zA-Z]\)[^0-9]*\([0-9][0-9]*\)/\1\2/g' | tr -d /)"; done
但是,這會將原始文件夾保留在原位,然后您必須手動將其刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.