嗨我想要遞歸地刪除/刪除目錄及其子目錄和文件。我不想使用rm -r。我已經拿出了下面的代碼。不使用rm命令遞歸地刪除目錄
function recursive(){
for i in "$1"/*; do
if [ -d $i ];then
echo "FILE $i IS A DIRECTORY"
if [ "$(ls -A $i)" ];then
echo "DIRECTORY IS NOT EMPTY CALLING RECURSIVE AGAIN"
recursive $i
else
echo "DELETE THIS DIRECTORY: ITS EMPTY"
fi
elif [ -e $i ];then
echo "DELETING FILE $i"
else
echo UNKNOWN FILE $(basename $i)
fi
done
}
的問題是,我深入挖掘子目錄,我可以刪除的道路上他們的文件,但一旦我到目錄樹的底部,我必須刪除所有這些現在空目錄(也許在我回來的路上?)
真的很感激,如果有人能幫助我的邏輯或引導我在正確的方向。
THIS問題的答案是有道理的,但我不知道如果子目錄的級別很少,它怎麼處理?
一旦你到達目錄樹的底部,你最深的遞歸()完成其for循環。然後它跳到下一個較高的那個,完成'遞歸$ i'。在遞歸$ i'調用之後,該目錄應該是空的,因此可能會刪除該目錄。 – finity
「我想開一個螺絲,但我不想用螺絲刀。」 *爲什麼*你不想使用'rm -r'?如果沒有別的辦法,答案可以幫助我們更好地理解你的要求。 –
我認爲他是爲了教育目的而做的。 – CQQL