簡體   English   中英

Bash:將文件移動並重命名到父目錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM