Linuxでは、2つのフォルダの日付の間のファイルを探していますか?

Linuxでは、2つのフォルダの日付の間のファイルを探していますか?

コンテンツに私の文字列を含むフォルダ名とファイル名を見つける必要があります。私はこのディレクトリ/data/queue/dataにあり、同じディレクトリに多数のフォルダがあり、各フォルダにはさまざまなファイルがあります。

以下はディレクトリ内のフォルダです。/data/queue/data各フォルダにはさまざまなファイルが含まれています。

david@machineA:/data/queue/data$ ls -lrth
drwxr-xr-x 2 david david  12K Apr 11 18:58 1428800400
drwxr-xr-x 2 david david  12K Apr 11 19:58 1428804000
drwxr-xr-x 2 david david  12K Apr 11 20:58 1428807600

このディレクトリで - " "コマンドを実行したいが/data/queue/dataタイムスタンプを含むフォルダ内のファイルのみを検索する必要がありますApril 13th 3 AM to April 13th 9 AM

April 13th 3 AM to April 13th 9 AM以下は私のコマンドです。このコマンドは、すべてのフォルダ内のファイルを再帰的に検索します。ただし、フォルダ内のファイルのみを検索するにはどうすればよいですか?

david@machineA:/data/queue/data$ grep -rl "pcV6URY" /data/queue/data

これを行う最良の方法は何ですか?

ベストアンサー1

この試み:

touch -d"April 13 3 AM" file1
touch -d"April 13 9 AM" file2
find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +
rm file1 file2

どのように動作しますか?

find時間は直接処理できますが、touch人間スタイルの日付はよりよく処理できます。

  • touch -d"April 13 3 AM" file1; touch -d"April 13 9 AM" file2

    これにより、時間範囲の始まりと終わりを示す2つのファイルが作成されます。

  • find . -newer file1 ! -newer file2 -exec grep -l "pcV6URY" {} +

    file1これにより、最新ではないが最新ではないファイルが検索されますfile2。これらすべてのファイルに対してgrep実行され、そのファイルに文字列が含まれていることを確認します。

おすすめ記事