Saya mencoba mendapatkan file tanggal saat ini dengan perintah berikut di HP-UX Unix:
$ ls -lrt ABC.LOG* |grep "`date +"%b %d"`"
Tapi, itu memberi saya kesalahan:
ksh: : cannot execute
grep: can't open %d
Ada saran?
Jawaban yang Diterima:
Kesalahan berasal dari kutipan argumen grep
dan fakta bahwa backtick tidak dapat bersarang dengan baik:
grep "`date +"%b %d"`"
Ini lebih baik ditulis sebagai
grep "`date +'%b %d'`"
… atau bahkan lebih baik,
grep "$(date +'%b %d')"
Bahkan, dengan $(...)
alih-alih backticks, Anda harus dapat mempertahankan tanda kutip ganda dalam:
grep "$(date +"%b %d")"
Alternatif untuk menangkap output ls
akan dilakukan
find . -type f -name "ABC.LOG*" -ctime -1
Ini akan menemukan semua file biasa (-type f
) di direktori saat ini yang namanya cocok dengan pola yang diberikan dan yang waktunya kurang dari 24 jam sejak waktu saat ini . Waktu file adalah waktu saat modifikasi terakhir dari data atau metadata file dibuat.
Ini tidak persis setara dengan apa yang Anda coba capai. Ini juga berulang menjadi subdirektori.