我需要幫助創建腳本,該腳本將通過指定的目錄並重命名與名稱匹配的文件夾。在我的情況下,有些(/ Users /).bak附加到他們,我想要刪除。使用BASH重命名具有特定擴展名的文件夾
非常感謝您提供任何幫助。
我需要幫助創建腳本,該腳本將通過指定的目錄並重命名與名稱匹配的文件夾。在我的情況下,有些(/ Users /).bak附加到他們,我想要刪除。使用BASH重命名具有特定擴展名的文件夾
非常感謝您提供任何幫助。
要與.bak
擴展在子目錄刪除文件夾命名爲用戶
find /Users -type d -iname '*.bak' -print0 | xargs -0 rmdir
如果文件夾不空,則必須使用rm -rf
代替
find /Users -type d -iname '*.bak' -print0 | xargs -0 rm -rf
find
查找文件夾名爲-type d
以某種方式與.bak的擴展名-iname '*.bak'
和這些名稱,以xargs
,這收集了無MES和刪除它們rmdir
或rm -rf
更新:
要刪除的擴展名(重命名文件夾),您可以使用while read
環和mv
find /Users -type d -iname '*.bak' | while read d; do
t=$(echo $d | sed -e 's/\.bak$//')
mv $d $t
done
我不想刪除目錄,我只是想刪除擴展名。例如:test.bak重命名爲測試 – user3089044
這很好。我添加了-maxdepth,因爲我只需要/ Users。非常感謝你的幫助! – user3089044
find /Users -type d -iname '*.bak' | while read d; do
mv "$d" "${d%.bak}"
done
記得把文件名用引號括起來,以防名稱中有空格。
${var%stuff}
:從前面
這兩個成語除去水珠stuff
,在循環使用時,是非常強大的,並且工作在任何Bourne shell的變體(破折號:從端
${var#stuff}
除去水珠stuff
,bash,ksh等)
'find -type d -name'*(/ Users /).bak'-delete'。 – Wrikken
'/用戶/'被追加?你一定是說它是前面路徑的一部分,不是嗎? –
抱歉/用戶是該目錄並且附加了.bak。我正在尋找刪除任何與.bak擴展名。 – user3089044