私のサーバーの大容量ログファイルとバックアップを整理したいと思います。
私はこれを思い出しました:
find ./ -size +1M | xargs rm
しかし、mp3とmp4は含めたくありません。ログファイルとアーカイブファイル(zip、tarなど)に対してのみこれを実行したいと思います。
その命令はどんな姿なのでしょうか?
答え1
find -type f \( -name "*zip" -o -name "*tar" -o -name "*gz" \) -size +1M -delete
- この
\( \)
構造により、さまざまなファイル名パターンをグループ化できます。 - オプションを使用すると、
-delete
パイプや問題を回避できますxargs
。これ、これそしてこれ ./
または、現在のディレクトリに対して.
コマンドを使用する場合はオプションです。find
編集する:Eric Renoufが言ったように、このバージョンがこのオプションをfind
サポートしていない場合は、-delete
この-exec
オプションを使用してください。
find -type f \( -name "*zip" -o -name "*tar" -o -name "*gz" \) -size +1M -exec rm {} +
ここでコマンドでフィルタ処理されたファイルはすべてコマンドfind
に渡されます。rm
答え2
名前でファイルを除外するには、次の構文を使用できます。
find . -type f ! -name '*.mp3' ! -name '*.mp4' -size +1M -delete
またはfind
サポートしていない場合delete
:
find . -type f ! -name '*.mp3' ! -name '*.mp4' -size +1M -exec rm {} \;
答え3
上記の答えに基づいて、次のコマンドを使用して大きなログファイルからサーバーを消去しました(/var/lib/jenkinsでcd'ingした後)。
find -type f -name *log -size +500M -delete