Apakah penggantian nama file memengaruhi modifikasi atau waktu akses? Apakah ada daftar di suatu tempat tentang perubahan apa pada waktu itu?
Apakah penggantian nama file memengaruhi modifikasi atau waktu akses? Apakah ada daftar di suatu tempat tentang perubahan apa pada waktu itu?
Jawaban:
Mengganti nama memang memperbarui waktu Ubah:
$ mkdir tmp
$ cd tmp
$ echo abc > a
$ stat a
File: `a'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000 / zelda Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:06:58.981107444 +0100
Birth: -
$ mv a b
$ stat b
File: `b'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 26h/38d Inode: 5038682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ zelda) Gid: ( 1000/ zelda)
Access: 2013-12-12 07:06:58.981107444 +0100
Modify: 2013-12-12 07:06:58.981107444 +0100
Change: 2013-12-12 07:07:14.893238472 +0100
Birth: -
Waktu akses diperbarui saat membaca konten file. Ubah ketika Anda benar-benar memperbarui file (membuka untuk modifikasi tidak cukup untuk mengubah Ubah waktu).
cp
dan mv
, dan vi
untuk mengedit. Editor lain, atau desktop Anda mungkin menangani tugas secara berbeda, dan memiliki lebih banyak cap waktu diperbarui.
mv
Modifikasi yang mempengaruhi mtime file adalah perubahan data file: penulisan jumlah byte yang tidak nol, atau pemotongan yang akhirnya memodifikasi file. Membuat file juga dapat mengatur waktu ke tanggal saat ini. Hanya membuka file untuk menulis tidak mempengaruhi waktu, dengan asumsi file tidak dibuat atau terpotong.
Membaca dari file (jika jumlah byte yang tidak dibaca dibaca) atau menjalankan file akan menetapkan atime ke waktu saat ini. Hanya membuka file untuk dibaca tidak pernah memengaruhi atime. Di Linux, ini sekarang dinonaktifkan secara default di sebagian besar keadaan; yang atime
me-mount option mengembalikan atime update, sementara noatime
gunung Menonaktifkan pilihan mereka sepenuhnya.
Program dapat mengubah waktu dan waktu file; perintah dasar untuk melakukan ini adalah touch
. Beberapa program salin file mengatur salinan ke waktu yang sama seperti aslinya, misalnya cp -p
atau rsync -t
.
Perubahan yang mempengaruhi waktu file adalah perubahan metadata file: izin, pemilik, waktu, jumlah tautan, dll. Mengganti nama file juga memperbarui waktu. Perubahan data file juga mempengaruhi waktu, tetapi membaca dari file tidak mengubah waktu bahkan jika itu mengubah atime. Mustahil untuk mengubah waktu dengan cara apa pun selain mengaturnya ke waktu saat ini (bahkan root dibatasi, tetapi root dapat secara tidak langsung mengatur waktu dengan terlebih dahulu mengubah waktu sistem atau dengan mengakses partisi yang berisi sistem file secara langsung).
Pengamatan empiris tambahan yang tidak disebutkan oleh jawaban lain:
Membuka file untuk ditulis dengan O_TRUNC
mengubah mtime bahkan jika file tersebut awalnya kosong.
Ini tampaknya menjadi kasus setidaknya pada ext3 di Linux 3.10.