通常、date +%d
出力08
を提供します 現在の日付、2017年8月10日。しかし、ls -lrt
を実行すると パス上の日付形式は、Oct 8 15:03
のようなものです。 、では、現在の日付のファイルを取得するにはどうすればよいですか?
コマンドを使用しています
ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'
ただし、今日の日付(2017年8月10日)のファイルは表示されませんが、任意の月の10〜31日の日付の正しい出力が表示されます。
承認された回答:
これは少しごまかしていますが、機能します。
まず、特定のタイムスタンプ、つまり深夜の空の参照ファイルを作成します。
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
深夜以降にファイルを変更します。
関連:なぜ `ls`を解析しないのですか?