こんにちは、ディレクトリとそのサブディレクトリおよびファイルを再帰的に削除/削除しようとしています。rm -r を使いたくありません。次のコードを思いつきました。
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
}
問題は、サブディレクトリを深く掘り下げると、途中でそれらのファイルを削除できますが、ディレクトリツリーの一番下に到達すると、現在空になっているすべてのディレクトリを削除する必要があることです (おそらくバックアップする途中ですか?)
誰かがその論理を手伝ってくれたり、正しい方向に導いてくれたりしてくれたら本当にありがたいです.
この質問への答えは理にかなっていますが、サブディレクトリのレベルが少ない場合、どのように処理できるかわかりませんか?