rm -fr が機能しない

rm -fr が機能しない

アプリケーションエラーのために生成されたディレクトリがあります。このディレクトリの構造には、次のように1つのディレクトリごとに2000以上のディレクトリが含まれています。

ディレクトリaaaa内部bob内部ccc内部ddd内部など、これらのディレクトリの深さは1000レベルでeeeあり、そのほとんどは名前にURLでエンコードされたスペースがあります(スペースはisなどです)。%20>%3E

.を使用してディレクトリを削除しようとすると、ディレクトリを削除するために必要な文字列がUNIXでは長すぎるようですrm -frdirectory is not emptyこのディレクトリを削除する方法はありますかrm

私はMac OS X Mountain Lionを使用しています。

答え1

非常に深い構造を使用している場合、rm -rf stuff_to_deletermはあまりにも多くのディレクトリを処理できない可能性があります。

次の方法でこの問題を解決できます。

find /starting/path/to/delete/from -type d -delete

または

find -type d /starting/path/to/delete/from -exec rm -f {} \;

最初は動作するはずです。 2番目のコマンドは各ディレクトリに対して新しいコマンド(rm)を開始しますが、これによりrmforceフラグを使用できます。しかし、そうする必要はないようで、最初のコマンドがより速くなってほしいです。

どのコマンドを使用しても、最初に-printを使用してパスが正しいことを確認してください。

答え2

私はMacOSX 10.8ノートブックで「sudo rm -fr」エラーを頻繁に目撃します。最近の場合、削除しようとしているディレクトリにはディレクトリ階層に約28,000個のファイルが含まれており、その深さは最大8〜10個のレベルにすることができ、ディスクの合計サイズは約4GBです。いつものように、「sudo rm -fr」を2番目に実行して残りのファイルを削除してください。

削除されていないファイルは常にディレクトリツリーの上部近くにあるように見えるため、問題はディレクトリ階層の深さにあるようではありません。 「rm」がこれらのディレクトリを繰り返し削除したいので、これはファイルの総数やディレクトリ数に関連しているとは考えにくいです。

関連情報