ディレクトリを削除するとうまくいくはずです。非常に多くのファイルがあるため、個々のファイルを削除しようとすると、問題が発生する可能性があります。 rm -rf dirname/*
を実行していません あなたですか?
私の推測では、非アクティブなために ssh 接続が失われていると思われます。コマンドがサーバー上で正しく実行されなかったと確信していますか?
いずれにせよ、可能な回避策は nohup を使用することです:
nohup rm -rf dirname
コマンドを起動してログオフできます。コマンドはバックグラウンドで続行されます。
更新:
U&L.SE でこの質問を見つけました。確認することをお勧めします。残念ながら、あなたの問題を再現することはできません。 2516007 個のファイルを含むディレクトリを作成しましたが、 rm -rf
を使用していつでも削除できました :
$ mkdir ha
$ for X in $(seq 1 10000);do touch {1..10000}_$X; done
$ ls -f ha | wc -l
2516007 <= I stopped before the for loop finished, but this should be enough
$ time rm -rf ha/
real 23m11.695s
user 0m3.540s
sys 0m42.891s
そのため、約 200 万個の空のファイルを削除するのに 20 分かかりました。大量の空でないファイルを削除するのに何時間もかかることは理にかなっています.
とにかく、U&Lの質問からの提案のいくつかが役立つはずです.特にこれ:
find /delb -type f --delete
またはこれ(オリジナルからわずかに変更)
find /delb -type f -print0 | xargs -0r rm -f
最後に、一度にいくつかのファイルを削除する方法があります。一部のファイル名が文字列「foo」で始まり、他のファイル名が「bar」などで始まることがわかっている場合は、次のようにします。
rm -rf /delb/foo*
rm -rf /delb/bar*
等々。次のようなこともできます:
for n in {a..z}; do rm -rf /delb/$n*; done
for n in {A..Z}; do rm -rf /delb/$n*; done
for n in {0..9}; do rm -rf /delb/$n*; done
この最後のコマンドは、アルファベットの各文字で始まる各ファイル名を順番に削除し、次に数字で始まるファイル名を削除します。