通常、date +%d
現在の日付は2017年8月10日の出力を提供します。08
ところで、そのパスで実行するとls -lrt
日付形式は次のようになりますが、Oct 8 15:03
どうすれば現在の日付のファイルを取得できますか?
私はコマンドを使用しています
ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'
ただし、今日の日付(2017年8月10日)のファイルは提供されませんが、すべての月の日付10 - 31の正しい出力は提供されます。
ベストアンサー1
これは少しトリックですが、動作します。
特定のタイムスタンプ(真夜中など)を持つ空の参照ファイルを作成することから始めます。
touch -d "$(date +%FT00:00:00)" /tmp/midnight
次に、そのファイルより最新のファイルを見つけます。
find . -type f -newer /tmp/midnight
パス名の代わりにls
同様の出力が必要な場合:find
find . -type f -newer /tmp/midnight -ls
パターンに一致するファイルを見つけるには、次のようにしますXYZ.LOG*
。
find . -type f -name 'XYZ.LOG*' -newer /tmp/midnight -ls
GNUがある場合は、一時find
ファイルを無視して次のものを使用できます。
find . -type f -newermt 0
ファイルの変更は真夜中から始まりました。