Linux で最近または今日変更されたファイルを見つける方法
この記事では、今日のすべてのファイルのみを一覧表示できるようにする 2 つの簡単なコマンド ライン ヒントについて説明します。
Linux ユーザーがコマンド ラインで遭遇する一般的な問題の 1 つは、特定の名前のファイルを見つけることですが、実際にファイル名がわかっていれば、はるかに簡単になります。
ただし、一日の早い時間に作成したファイル (数百のファイルが含まれる home
フォルダー内) の名前を忘れてしまい、緊急に使用する必要があるとします。
以下は、今日 (直接的または間接的に) 作成または変更したすべてのファイルのみをリストするさまざまな方法です。
1. ls コマンドを使用すると、次のようにホーム フォルダー内の今日のファイルのみを一覧表示できます。
-a
– 隠しファイルを含むすべてのファイルをリストします。-l
– 長いリスト形式を有効にします--time-style=FORMAT
– 指定された形式で時間を表示します+%D
– 日付を %m/%d/%y 形式で表示/使用します
# ls -al --time-style=+%D | grep 'date +%D'
さらに、 -X
フラグを含めることで、結果のリストをアルファベット順に並べ替えることができます。
# ls -alX --time-style=+%D | grep 'date +%D'
-S
フラグを使用して、サイズに基づいて (最大から順に) リストすることもできます。
# ls -alS --time-style=+%D | grep 'date +%D'
2. 繰り返しますが、以下と同じ目的で、ls よりも実質的に柔軟性が高く、多くのオプションを提供する find コマンドを使用することができます。
-max Depth
レベルは、検索操作が実行される開始点 (この場合は現在のディレクトリ) の下のレベル (サブディレクトリに関して) を指定するために使用されます。-newerXY
、これは、問題のファイルのタイムスタンプ X がファイル参照のタイムスタンプ Y よりも新しい場合に機能します。 X と Y は以下の文字のいずれかを表します。- a – ファイル参照のアクセス時間
- B – ファイル参照の誕生時刻
- c – inode ステータス変更基準時間
- m – ファイル参照の変更時刻
- t – 参照は時間として直接解釈されます
これは、2016-12-06 に変更されたファイルのみが考慮されることを意味します。
# find . -maxdepth 1 -newermt "2016-12-06"
重要: 上記の検索コマンドの参照として正しい日付形式を使用してください。間違った形式を使用すると、次のようなエラーが発生します。以下のもの:
# find . -maxdepth 1 -newermt "12-06-2016"
find: I cannot figure out how to interpret '12-06-2016' as a date or time
あるいは、以下の正しい形式を使用してください。
# find . -maxdepth 1 -newermt "12/06/2016"
OR
find . -maxdepth 1 -newermt "12/06/16"
ls
コマンドと find
コマンドの使用方法の詳細については、以下の一連の記事を参照してください。
- この 15 の例で Linux の「ls」コマンドをマスターしましょう
- Linux ユーザー向けの便利な 7 つの風変わりな「ls」トリック
- この 35 の例で Linux の「find」コマンドをマスターしましょう
- Linux で拡張子付きの複数のファイル名を検索する方法
この記事では、ls および find コマンドを使用して今日のファイルのみを一覧表示する方法に関する 2 つの重要なヒントを説明しました。このトピックに関するご質問やコメントを送信するには、以下のフィードバック フォームをご利用ください。同じ目的で使用されたコマンドをお知らせいただくこともできます。