我想重命名以下目錄:擊:批量重命名嵌套的目錄或文件名稱相同
從1/2/3/2/2
到1/2_re/3/2_re/2_re
。
每個目錄還有其他內容 - 例如file2stay.sh-應該保持不變。使用process substitution
mv: cannot stat ‘2’: No such file or directory
我想重命名以下目錄:擊:批量重命名嵌套的目錄或文件名稱相同
從1/2/3/2/2
到1/2_re/3/2_re/2_re
。
每個目錄還有其他內容 - 例如file2stay.sh-應該保持不變。使用process substitution
mv: cannot stat ‘2’: No such file or directory
您可以使用此find
與sort -r
在for循環中:
我試過命令: find ./ -exec bash -c 'mv 2 2_re' \;
,但它成功地重命名的第一個目錄後,會出現以下錯誤消息
while read -r f; do
mv "$f" "${f}_re"
done < <(find . -name '2' | sort -r)
您需要告訴find
以處理文件夾的內容使用-depth
文件夾本身:
find . -name "2" -type d -depth -execdir mv 2 2_re \;
-execdir
執行其中./2
發現文件夾中的mv
。