Linuxコマンド-Xより古いファイルを削除する

1. 概要

*多くの場合、ワークステーションまたはサーバー上のファイルを整理する必要があります*。 当社のアプリケーションは、ログまたは一時ファイルを生成する場合があります。 一般的な使用例の1つは、*一定の年齢を超えるファイルを削除することです*。
このチュートリアルでは、* Linuxで年齢別にファイルを削除する方法を見ていきます。*これらのコマンドは、他のPOSIXシェルでも機能する場合があります。

[[deleting files]]
=== 2. ファイルの検索と削除

削除アクションを適用するには、基準に一致するファイルを見つける必要があります。
これには、** http://man7.org/linux/man-pages/man1/find.1.html [_find_]コマンドを使用します。 ** __find __コマンドは、使用可能な削除機能も提供します。

2.1. X分より古いファイルを削除する

まず、_find_を使用して、ファイル名が_access_で始まり_.log_で終わり、* 15分以上古いファイルを削除します。*
find . -name "access*.log" -type f -mmin +15 -delete
このコマンドの作成方法を詳しく見てみましょう。
最初に、ファイル検索の開始点を指定しました。これは現在の作業ディレクトリ「。」です。
次に、_- name_スイッチのプレフィックスが付いたファイル名の条件があります。
スイッチ_-type f_は、ファイルのみを検索することを意味します。
_-mmin_は変更時刻を表し、_ + 15_は、15分前またはそれ以前に最後に変更されたファイルが必要であることを意味します。
アクションフラグ_-delete_は、検出したすべてのファイルを削除するよう_find_に要求します。 *これは、現在の作業ディレクトリから開始して、ファイルシステム階層を再帰的に検索することに注意する必要があります*。

2.2. X日より古いファイルを削除する

数分から数日に切り替えるには、command__find __コマンドを少し変更するだけです。
find . -name "access*.log" -type f -mtime +5 -delete
ここで、_- mtime_スイッチは、少なくとも5日前に変更されたファイルを削除することを示しています。

2.3. days_find_の古いバージョンでX日より古いファイルを削除する

古いディストリビューションを使用している場合、* _ find_ツールに-deleteスイッチがない場合があります。*
この場合、別の方法があります。
find . -name "access*log" -exec rm {} \;
このバージョンでは、__- exec __スイッチにより、見つかった各ファイルでon_rm_コマンドを使用できます。

2.4. プロンプトでX日より古いファイルを削除する

*誤って作成された削除コマンドは、間違ったファイルを削除することになりかねない*ことを心配するかもしれません。 上記のコマンドを少し変更すると、削除する前にプロンプ​​トが表示されます。
__i_スイッチを_rm_コマンドに追加しましょう:
find . -name "access*log" -exec rm -i {} \;
この方法で、削除するファイルを決定できます。

3. 偶発的なファイル削除の回避

ファイルの削除は非常に簡単ですが、検索条件に一致するすべてのファイルに対して実行していることを覚えておく必要があります。 これは、*単純なタイプミスまたはコマンドラインスイッチの予期しない順序が予期せぬ損傷*を引き起こす可能性があることを意味します。
例として、次のコマンドを見てみましょう。
find . -delete -name file.txt
これにより、現在の作業ディレクトリから_file.txt_のみが削除されると想定される場合があります。 ただし、_- delete_スイッチが最初に来るため、_- name_は無視されます。 *この間違いにより、現在のディレクトリ内のすべてが削除されます!*
_find_で削除するときの安全性を向上させるために従うべき一般的な規則を次に示します。
  • _find_コマンドが正しいことを確認するには、プレビューして実行します
    – delete switchなし

  • find_の最後にある-delete_オプションを常に確認してください*
    引数

  • 絶対に必要でない限り、rootユーザーとしてファイルを削除しないでください

4. 概要

このチュートリアルでは、一定期間より古いファイルを削除する方法を検討しました。
次に、指定されたスイッチが必要な順序になっていない場合に何が問題になるかを調べました。
最後に、システムでこのようなコマンドを実行する際に従うべき一般的な規則について簡単に説明しました。
__find __commandは非常に便利で、追加のスイッチがたくさんあります。 * man findまたはfind –helpのいずれかで詳細を確認できます。*