アプリケーションエラーのために生成されたディレクトリがあります。このディレクトリの構造には、次のように1つのディレクトリごとに2000以上のディレクトリが含まれています。
ディレクトリaaaa
内部bob
内部ccc
内部ddd
内部など、これらのディレクトリの深さは1000レベルでeee
あり、そのほとんどは名前にURLでエンコードされたスペースがあります(スペースはisなどです)。%20
>
%3E
.を使用してディレクトリを削除しようとすると、ディレクトリを削除するために必要な文字列がUNIXでは長すぎるようですrm -fr
。directory is not empty
このディレクトリを削除する方法はありますかrm
?
私はMac OS X Mountain Lionを使用しています。
答え1
非常に深い構造を使用している場合、rm -rf stuff_to_delete
rmはあまりにも多くのディレクトリを処理できない可能性があります。
次の方法でこの問題を解決できます。
find /starting/path/to/delete/from -type d -delete
または
find -type d /starting/path/to/delete/from -exec rm -f {} \;
最初は動作するはずです。 2番目のコマンドは各ディレクトリに対して新しいコマンド(rm)を開始しますが、これによりrm
forceフラグを使用できます。しかし、そうする必要はないようで、最初のコマンドがより速くなってほしいです。
どのコマンドを使用しても、最初に-printを使用してパスが正しいことを確認してください。
答え2
私はMacOSX 10.8ノートブックで「sudo rm -fr」エラーを頻繁に目撃します。最近の場合、削除しようとしているディレクトリにはディレクトリ階層に約28,000個のファイルが含まれており、その深さは最大8〜10個のレベルにすることができ、ディスクの合計サイズは約4GBです。いつものように、「sudo rm -fr」を2番目に実行して残りのファイルを削除してください。
削除されていないファイルは常にディレクトリツリーの上部近くにあるように見えるため、問題はディレクトリ階層の深さにあるようではありません。 「rm」がこれらのディレクトリを繰り返し削除したいので、これはファイルの総数やディレクトリ数に関連しているとは考えにくいです。