[英]Bash - Find several specific folders in a directory and its sbdirectories and rename these specific folders
我剛開始學習Bash。 我想做一個腳本來查找目錄及其子目錄中的某些特定文件夾,如果存在,請將其重命名為我們找到它的相同文件夾。 相同的特定文件夾可以位於某些子目錄中。
我用這個:
file=`find . -name a`
if [ -d $file ]
then
rename 's/a/b/' $file
fi
但是不行。 反正有這個過程嗎?
謝謝。
最后,我解決了這個問題:
find . -name "a" -type d -execdir rename 's/a/b/' {} \; &>/dev/null
您可以使用oneliner做到這一點:
find . -name "a" -type d -execdir rename 's/a/b/' {} \\;
要命名的參數可能是正則表達式。 使用-type d
,它將找到所有目錄。 -execdir
切換到匹配項的目錄,然后執行rename
命令,將當前項的文件名作為參數( {}
)傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.