Saya hanya tahu itu ls -t
dan ls -f
memberikan berbagai penyortiran file dan subdirektori di bawah direktori.
- Apa perbedaan antara cap waktu, waktu modifikasi, dan waktu pembuatan file?
- Bagaimana cara mendapatkan dan mengubah informasi semacam ini dengan perintah?
- Dalam hal informasi apa yang dikatakan orang bahwa sebuah file "lebih baru" daripada yang lain?
- Apa jenis perubahan informasi yang tidak akan membuat file berbeda?
Sebagai contoh, saya melihat seseorang menulis:
Secara default, program rsync hanya terlihat untuk melihat apakah file berbeda dalam ukuran dan cap waktu. Tidak peduli file mana yang lebih baru, jika berbeda, ia akan ditimpa. Anda dapat meneruskan flag '--update' ke rsync yang akan menyebabkannya melompati file di tujuan jika mereka lebih baru dari file pada sumbernya, tetapi hanya selama mereka adalah jenis file yang sama. Artinya adalah jika, misalnya, file sumber adalah file biasa dan tujuannya adalah symlink, file tujuan akan ditimpa, terlepas dari timestamp.
Di samping catatan, apakah jenis file di sini berarti hanya file biasa dan simlink, bukan tipe seperti pdf, jpg, htm, txt dll?
sumber
Jawaban:
Ada 3 jenis "cap waktu":
Untuk menampilkan informasi ini, Anda dapat menggunakan
stat
yang merupakan bagian dari coreutils.stat
akan menunjukkan kepada Anda juga beberapa informasi lebih lanjut seperti perangkat, inode, tautan, dll.Ingat bahwa informasi semacam ini sangat tergantung pada filesystem dan opsi mount. Misalnya jika Anda memasang partisi dengan
noatime
opsi, tidak ada informasi akses yang akan ditulis.Utilitas untuk mengubah cap waktu adalah
touch
. Ada beberapa argumen untuk memutuskan stempel waktu yang akan diubah (mis. -A untuk waktu akses, -m untuk waktu modifikasi) dan untuk memengaruhi penguraian stempel waktu yang baru diberikan. Lihatman touch
untuk lebih jelasnya.touch
dapat menjadi berguna dalam kombinasi dengancp -u
( "salin hanya ketika file SOURCE lebih baru dari file tujuan atau ketika file tujuan hilang" ) atau untuk pembuatan file penanda kosong.sumber
ls -l
. Dan jenis file mengacu pada file vs symlink (atau jenis file lain seperti direktori atau perangkat). Bukan tipe data dalam file tersebut (teks vs. jpeg, dll).Jawaban echox valid tetapi saya ingin menambahkan informasi mengenai waktu pembuatan file.
Dukungan Sistem File
Beberapa sistem file mendukung entri tambahan dalam inode mengenai waktu pembuatan (atau waktu lahir). Saya tahu bahwa ext4 mendukung fitur ini dan juga JFS dan BTRFS .
Namun sebagian besar alat dan API belum diperbarui untuk membaca informasi tambahan ini. Jadi meskipun itu bisa ada, itu tidak dapat diakses.
Misalnya pada Ubuntu 12.04 LTS saya mendapatkan yang berikut untuk file yang saya buat hari ini:
Anda dapat melihat bahwa fungsi stat yang lebih baru memiliki bidang kelahiran, meskipun hasilnya tampaknya tidak benar. Dan melalui debugfs kita bisa mendapatkan informasi (crtime karena saya menggunakan sistem file ext4).
dukungan statx
Sekarang ada sejak Kernel 4.11 panggilan sistem statx baru , di atas dukungan yang lebih baik dari Y2038 atau sistem file jaringan, itu juga membawa beberapa fitur tambahan seperti akses
btime
waktu kelahiran (waktu pembuatan). Dukungan untuk ext4 harus dalam rilis kernel yang sama 4.11.Ada tambalan untuk menambahkan dukungan pada syscall baru ini di rilis Kernel berikutnya: misalnya BTRFS dan F2FS di Kernel 4.13, SMB3 di 4.14, GFS2 di 4.15, NFS di 4.16, dll.
Glibc yang akan datang akan menyediakan panggilan fungsi untuk menanyakan antarmuka ini (lihat berita Phoronix tentang dukungan statx glibc ). Jadi kami dapat mengharapkan dukungan untuk fitur ini di ruang pengguna segera.
sumber