Rename
將第三級目錄重命名為同名
我有一個目錄 A,其中包含一百個子目錄。這些子目錄中的每一個都包含一個目錄。
例如,如何將一百個目錄中的每個目錄中的這個單個目錄重命名為相同的名稱
X
?我已經嘗試了該mmv
命令,但沒有運氣。任何幫助,將不勝感激!
也許是更好的方法,但是:
使用
bash
和find
while IFS= read -r dir; do mv -- "$dir" "${dir%/*}/X" done< <(find . -maxdepth 2 -mindepth 2 -type d)
首先進行測試執行,例如:
while IFS= read -r dir; do printf 'mv "%s" "%s"\n' "$dir" "${dir%/*}/X" done< <(find . -maxdepth 2 -mindepth 2 -type d)
簡而言之:
find
.
目前目錄作為基礎(通常A
在您的情況下)type d
(目錄)最小和最大深度為 2bash
閱讀並移至$dir
_find``$dir
${dir%/*}
刪除最後/
和之後的所有內容
/X
附加新的目錄名稱。例如
find ./A ...
,如果您居住在 A 級以下,則使用等。(可選)添加
-v
到mv
(非 POSIX)以顯示所採取的操作。