web-dev-qa-db-ja.com

lsで日付の後に作成されたファイルのみを取得するにはどうすればよいですか?

lsコマンドを使用して、特定の日付、時間後に作成されたファイルのみを表示することは可能ですか?

何千ものファイルがあるディレクトリがあるので、私はそれを求めています。

昨日から作成されたすべてのファイルを確認したいのですが。

私はls -ltrを使用していますが、すべてのファイルが表示されるまで待つ必要があります...

OpenVMSのDIRECTORY/SINCE=dateに相当するものはありますか?

109
Luc M

findコマンドを使用して、特定の日数後に変更されたすべてのファイルを検索できます。

たとえば、昨日(24時間前)以降に変更された現在のディレクトリ内のすべてのファイルを検索するには、次のコマンドを使用します。

find . -maxdepth 1 -mtime -1

変更されたファイルを見つけるにはbefore 24時間前に、-mtime +1ではなく-mtime -1を使用する必要があることに注意してください。

132
dogbane
find . -type f -newermt '1/30/2017 0:00:00'

これにより、特定の日付以降に変更されたすべてのファイルが見つかります。

29
nullability
ls -ltr | grep "`date | awk '{print $2" "$3}'`"
1
Trant Batey

これがうまくいくことを願っています:

ls -ltr | awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $9}'

ここに:

$6 indicates position of month
$7 indicates day of the month

上記のコマンドは、5月1日から5月31日以降に作成されたすべてのファイル名を出力します。

コンソールにも日付を印刷したい場合は、これを試してください

ls -ltr | awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $6"-"$7,$9}'

ディレクトリのパスを指定したい場合は、これを試してみてください

ls -ltr <path>| awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $6"-"$7,$9}'
0
Rohit Nimmala