ウェブサイト検索

Linux で X 日より古いファイルを検索して削除する


一定期間後に不要になった古いファイルを見つけてクリーンアップすることを常にお勧めします。これにより、ディスク容量がいくらか節約されます。古いファイルをまだクリーンアップしていない場合は、簡単にクリーンアップする方法を次に示します。この短いチュートリアルでは、Linux および Unix 系オペレーティング システムでX 日より古いファイルを検索して削除する方法を説明します。

免責事項:

次のコマンドを実行するときは細心の注意を払う必要があります。これらのコマンドでは、ファイルを削除する前に確認を求められません。 Enter キーを押すとファイルが削除されます。したがって、削除しようとしているファイルは十分に注意して再確認してください。

Linux で X 日より古いファイルを検索して削除する

まず、X 日 (たとえば 30 日) より古いファイルを見つけてみましょう。

そのためには、次を実行するだけです。

find . -mtime +30 -print

上記のコマンドは、現在の作業ディレクトリ内で 30 日より古いファイルを検索して表示します。

つまり、 このコマンドは少なくとも 30 日前に変更された現在のディレクトリ内のファイルを検索し、それらのファイルの名前を出力します。

コマンドの内訳は次のとおりです。

  1. find: これは、指定された場所内のファイルとディレクトリを検索するために使用される Unix ベースのシステムのコマンド ライン ユーティリティです。
  2. ドット (.): 現在のディレクトリを示します。
  3. -mtime +30: これは、ファイルの変更時間に基づいて検索結果をフィルタリングするために使用されるパラメータです。この場合、最後に変更されたのが 30 日以上前のファイルが検索されます。 + 記号は「より大きい」ことを示し、変更時間が 30 日以上前のファイルを検索します。
  4. -print: このパラメータは、指定された条件に一致するファイル (この場合は 30 日以上前に変更されたファイル) の名前を出力するように find コマンドに指示します。

したがって、このコマンドを実行すると、少なくとも 30 日前に最後に変更された、現在のディレクトリ内のファイルの名前が表示されます。

特定のディレクトリ内のファイルを検索する場合は、ドットをフォルダー パスに置き換えるだけです。

たとえば、/home/sk/Downloads ディレクトリにある 30 日より古いファイルを見つけるには、次のコマンドを実行します。

find /home/sk/Downloads -mtime +30 -print

サンプル出力:

/home/sk/Pictures/Wallpapers
/home/sk/Pictures/Wallpapers/29312450971_819c502b2e_o.jpg
/home/sk/Pictures/Wallpapers/skamath-HD-Wallpapers1.jpg
/home/sk/Pictures/Deepin Movie
/home/sk/Pictures/smplayer_screenshots

Linux で 30 日より古いファイルを検索する

次に、次のコマンドのいずれかを実行して、不要になったファイルを削除します。繰り返しますが、これらのコマンドは Enter ボタンを押すとすぐにファイルを削除することを警告します。これらのコマンドを実行する前に、注意して再確認してください。

$ find <Path_To_Old_Files> -type f -mtime +30 | xargs rm -f

または、

find <Path_To_Old_Files> -mtime +30 -exec rm -f {} \;

または、

find <Path_To_Old_Files> -mtime +30 -delete;

こちらもお読みください:

  • ディレクトリ内に X 個以上のファイルがある場合は、最も古いファイルを検索して削除します

結論

このようにして、Linux サーバーで一定期間より古いファイルを見つけて削除します。古いファイルが定期的に必要でない場合は定期的に削除するか、外部ドライブにバックアップしてディスク領域を解放してください。空きスペースは他の有用な目的に使用できます。

関連記事