開発者ドキュメント

linux-recently-changed-files

Linuxで最近変更されたファイルを見つける

1. 前書き

最近変更されたファイルを検索したい場合はさまざまです。
たとえば、システム管理者として、コンピューターシステムを保守および構成する責任があります。 多くの構成ファイルを扱っているため、最近変更されたファイルが何かを知りたい場合があります。
このチュートリアルでは、* bashコマンドを使用してLinuxで最近変更されたファイルを検索します。*

2. _find_コマンド

最初に、目的を達成するための最も一般的な方法であるhttps://linux.die.net/man/1/find[_find_ utility]を調べます。 このコマンドは、ファイルおよびディレクトリを再帰的に検索し、それらに対してさらに操作を実行するために使用されます。 *

2.1. -mtime_および-mmin_

_-mtime_は、たとえば、現在のディレクトリから過去24時間以内に変更されたすべてのファイルを検索する場合に便利です。
find . -mtime -1
_._は現在のディレクトリを参照するために使用されることに注意してください。 * _- mtime n_は、正確に_n_日前に変更されたファイルとディレクトリを見つける式です*。
さらに、式は他の2つの方法で使用できます。
  • -mtime + n = _n_以上に変更されたファイルとディレクトリを検索
    数日前

  • -mtime -n = _n_未満に変更されたファイルとディレクトリを検索します
    数日前

    同様に、* _-mmin n_式を使用して、日ではなく分に依存することができます*:
find /home/sports -mmin +120
したがって、このコマンドは、少なくとも120分前に変更された_ / home / sports_ディレクトリからすべてのファイルとディレクトリを再帰的に検索します。
次に、ディレクトリ以外のファイルのみに検索を制限する場合は、_- type f_式を追加する必要があります。
find /home/sports -type f -mmin +120
さらに、式を作成することもできます。 それで、120分以内と60分以上前に変更されたファイルを見つけましょう:
find . -type f -mmin -120 -mmin +60

2.2. -newermt

*特定の日付に基づいて変更されたファイルを検索する場合があります。*この要件を満たすために、次の構文を持つ別のパラメーターを調べる必要があります。
-newermt 'yyyy-mm-dd'
この式を使用することにより、指定された日付より前に変更されたファイルを取得できます。
それでは、新しいパラメーターをよりよく理解するためのコマンドを作成しましょう。
find . -type f -newermt 2019-07-24
さらに、*合成された式を使用して、特定の日付にファイルを変更することができます。*
そのため、「2019-07-24」に変更されたファイルを取得します。
find . -type f -newermt 2019-07-24 ! -newermt 2019-07-25
最後に、_- mmin_および_-mtime_ *に似た_-newermt_パラメーターの*別のバージョンがあります。
最初のコマンドは、過去24時間に変更されたファイルを見つけます。 残りは似ています:
find . -type f -newermt "-24 hours"
find . -type f -newermt "-10 minutes"
find . -type f -newermt "1 day ago"
find . -type f -newermt "yesterday"

3. _ls_コマンド

https://linux.die.net/man/1/ls[_ls_ command]は特定のディレクトリ内のファイルに関する情報をリストすることを知っています。 その使用法の1つは、ファイルの長い形式を表示し、変更時間で出力をソートすることです。
ls -lt
次のような結果になります:
-rw-r--r-- 1 root root 4233 Jul 27 18:44 b.txt
-rw-rw-r-- 1 root root 2946 Jul 27 18:12 linux-commands.txt
-rw-r--r-- 1 root root 5233 Jul 20 17:02 a.txt
_find_コマンドのように、最近変更されたファイルを一覧表示できない場合があります。 ただし、* ls_コマンドの結果に_grep_コマンドを適用することにより、特定の日付または時刻に基づいて上記の出力をフィルター処理できます*:
ls -lt | grep 'Jul 27'
-rw-r--r-- 1 root root 4233 Jul 27 18:44 b.txt
-rw-rw-r-- 1 root root 2946 Jul 27 18:12 linux-commands.txt
ls -lt | grep '17:'
-rw-r--r-- 1 root root 5233 Jul 20 17:02 a.txt
__find __commandはデフォルトで再帰的であることに注意してください。 _ls_コマンドで再帰機能を有効にするには、_R_(大文字)パラメータを追加する必要もあります。
ls -ltR

4. 結論

このクイックチュートリアルでは、Linuxオペレーティングシステムで最近変更されたファイルを見つけるのに役立ついくつかの方法を説明しました。
最初に、_find_コマンドを調査し、_- mtime _、_- mmin _、_- newermt_などのさまざまなパラメーターを使用していくつかの例を作成しました。
次に、_ls_や_grep_コマンドのような2つの既知のLinuxユーティリティの組み合わせを使用して、同様の結果を達成する方法を示しました。
モバイルバージョンを終了