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

特定のサイズを超えるファイルをすべて取得して削除する方法

exec rm の回答に似ていますが、見つかったファイルごとにプロセスは必要ありません:

find . -size +100k -delete

ワンライナー:

find . -size +100k -exec rm {} \;

最初の部分 (find . -size +100k ) は、現在のディレクトリ (.) から始まるすべてのファイルを探します ) 超過 (+ ) 100 キロバイト (100k ).

2 番目の部分 (-exec rm {} \; ) 見つかったすべてのファイルに対して指定されたコマンドを呼び出します。 {} パスを含む現在のファイル名のプレースホルダーです。 \; コマンドの終わりをマークするだけです。

生の find を実行して、フィルタリング基準が適切かどうかを常に確認することを忘れないでください :

find . -size +100k

または、削除する前にバックアップ コピーを作成することもできます:

find . -size +100k -exec cp --parents {} ~/backup \;

python はすべての unix ベースの OS にインストールされているので、bash の代わりに使用してみませんか?

awk よりも python の方が読みやすいといつも思っています。 と sed 魔法。

これは、私が書いたであろう python コードです:

import os
Kb = 1024 # Kilo byte is 1024 bytes
Mb = Kb*Kb
Gb = Kb*Kb*Kb
for f in os.listdir("."):
    if os.stat(f).st_size>100*Kb:
        os.remove(f)

これは python -c のワンライナー バージョンです。

python -c "import os; [os.remove(f) for f  in os.listdir('.') if os.stat(f).st_size>100*1024]"

検索を再帰的に適用したい場合は、これを参照してください


Linux
  1. サイズと拡張子でファイルを検索する方法は?

  2. ソフトウェアに関連するすべてのファイルを見つける方法は?

  3. Linuxで1GBサイズを超えるすべてのファイルを見つける方法は?

  1. ディレクトリ内のファイル サイズがゼロ (0) バイトのすべてのファイルを再帰的に検索する方法

  2. 最大スタック サイズを確認するにはどうすればよいですか?

  3. ファイルを再帰的にリストし、変更時間でソートする方法は?

  1. Linuxで特定のサイズのファイルを作成する方法

  2. すべてのファイルを削除せずにgzipする

  3. 特定のユーザーが書き込み可能なすべてのファイルとディレクトリを見つけるにはどうすればよいですか?