Bagaimana cara membandingkan cap waktu dua file?
Saya mencoba ini tetapi tidak berhasil:
file1time=`stat -c %Y fil1.txt`
file2time=`stat -c %Y file2.txt`
if[$file1time -gt $file2time];
then
doSomething
fi
Saya mencetak kedua perangko waktu, agar dan memberi saya
1273143480
1254144394
./script.sh: line 13: [1273143480: command not found
Jadi pada dasarnya jika perbandingan tidak berhasil, saya kira. Atau jika ada cara lain selain dari apa yang saya lakukan, tolong beri tahu saya. Apa yang harus saya ubah?
linux
bash
comparison
timestamp
newcoderintown
sumber
sumber
Jawaban:
Operator untuk membandingkan perangko waktu adalah:
Mnemonik itu mudah: 'lebih baru dari' dan 'lebih tua dari'.
sumber
Ini karena beberapa ruang yang hilang.
[
adalah perintah, jadi ia harus memiliki spasi di sekitarnya dan]
merupakan parameter khusus untuk menentukan di mana garis perintahnya berakhir. Jadi, garis tes Anda akan terlihat seperti:sumber
[
adalah perintah uji - lihat bagian "EKSPRESI KONDISI" daribash
halaman manual. Ada juga standalone yang dapat dieksekusi di/usr/bin/test
dan/usr/bin/[
, tetapi jika Anda menggunakan bash dan tidak menggunakan path lengkap, Anda menggunakan shell builtin.if
bukan sihir. Ia mencoba menjalankan perintah yang diteruskan ke sana, dan memeriksa apakah ia memiliki status keluar nol. Itu juga tidak menangani argumen yang tidak ada dengan baik, itulah sebabnya Anda harus mengutip variabel yang digunakan di dalamnya.sumber
sumber