Biasanya date +%d
memberikan output 08
untuk tanggal saat ini, 08/10/2017. Tetapi ketika saya melakukan ls -lrt
di jalan, format tanggal seperti Oct 8 15:03
, jadi, bagaimana cara mendapatkan file tanggal saat ini?
Saya menggunakan perintah
ls -lrt XYZ.LOG* |grep "$(date +'%b %d')" |awk '{print $9}'
tapi itu tidak memberi saya file tanggal hari ini (08/10/2017) meskipun itu memberi saya output yang benar untuk tanggal 10 – 31 setiap bulan.
Jawaban yang Diterima:
Ini sedikit curang, tetapi berhasil.
Pertama buat file referensi kosong dengan stempel waktu tertentu, yaitu tengah malam:
touch -d "$(date +%FT00:00:00)" /tmp/midnight
Kemudian cari file yang lebih baru dari file ini:
find . -type f -newer /tmp/midnight
Jika Anda ingin ls
-seperti keluaran dari find
bukan hanya nama path:
find . -type f -newer /tmp/midnight -ls
Jika Anda ingin menemukan file yang cocok dengan pola XYZ.LOG*
:
find . -type f -name 'XYZ.LOG*' -newer /tmp/midnight -ls
Jika Anda memiliki GNU find
, Anda dapat melewati file sementara dan menggunakan
find . -type f -newermt 0
untuk mendapatkan file yang dimodifikasi sejak tengah malam.
Terkait:Mengapa *tidak* mengurai `ls`?