GNU/Linux >> Linux の 問題 >  >> Linux

Debian - 何千ものファイルを削除する

ディレクトリを削除するとうまくいくはずです。非常に多くのファイルがあるため、個々のファイルを削除しようとすると、問題が発生する可能性があります。 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

この最後のコマンドは、アルファベットの各文字で始まる各ファイル名を順番に削除し、次に数字で始まるファイル名を削除します。


Linux
  1. 7zip ファイル:Ubuntu、Debian、Fedora で 7z ファイルを解凍する方法

  2. .o ファイルと .a ファイル

  3. wc gzipファイル?

  1. ファイルを削除していますが、ディスク容量はまだいっぱいです

  2. 特定の日付のファイルを検索して削除する

  3. Debian で開いているファイルが多すぎる

  1. Linux –何千ものファイルを含む大きなディレクトリを効率的に削除しますか?

  2. 数千を含むフォルダから100ファイルを移動する方法は?

  3. 年齢別にファイルを削除しますか?