Yeniden adlandırma dosyayı değiştirme veya erişim süresini etkiler mi? Hangi zamanlarda hangi değişikliklerin değiştiği bir liste var mı?
Yeniden adlandırma dosyayı değiştirme veya erişim süresini etkiler mi? Hangi zamanlarda hangi değişikliklerin değiştiği bir liste var mı?
Yanıtlar:
Yeniden adlandırma, Değiştirme zamanını güncellemez:
$ 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: -
Bir dosyanın içeriği okunurken Erişim süresi güncellenir. Dosyayı gerçekten güncellediğinizde değiştirin (değişiklik için açılma, Değiştirme zamanını değiştirmek için yeterli değildir).
cp
ve mv
ve vi
düzenlemek için kullanılır. Diğer düzenleyiciler veya masaüstünüz görevi farklı işleyebilir ve daha fazla zaman damgası güncellenebilir.
mv
Dosyanın çalışma süresini etkileyen bir değişiklik dosyanın verilerinin değiştirilmesidir: sıfır olmayan bir miktarda baytın yazılması veya dosyayı değiştiren bir kesme. Bir dosya oluşturmak, zamanını geçerli tarihe ayarlar. Yalnızca bir dosyayı yazmak için açmak, dosyanın oluşturulmadığını veya kesilmediğini varsayarak mtime'ı etkilemez.
Bir dosyadan okuma (sıfır olmayan sayıda bayt okunduysa) veya bir dosyayı yürütmek, zamanını geçerli saate ayarlar. Yalnızca bir dosyayı okumak üzere açmak, atime hiçbir zaman etki etmez. Linux'ta, bu artık çoğu durumda varsayılan olarak devre dışıdır; atime
ise opsiyon geri yükleme, güncelleme atime monte noatime
tamamen seçenek devre dışı bırakır onları monte edin.
Programlar bir dosyanın zamanını ve zamanını değiştirebilir; Bunu yapmak için temel komut touch
. Bazı dosya kopyalama programları, kopyayı orijinaliyle aynı mtime değerine ayarlar, örneğin cp -p
veya rsync -t
.
Dosyanın saatini etkileyen bir değişiklik dosyanın meta verilerinin değişikliğidir: izinler, sahip, saatler, bağlantı sayısı, vb. Bir dosyanın yeniden adlandırılması ctime değerini de günceller. Dosya verilerindeki değişiklikler ctime'ı da etkiler, ancak dosyadan okumak, zaman değiştirse bile ctime'ı değiştirmez. Ctime değerini şimdiki zamana ayarlamak dışında herhangi bir şekilde değiştirmek imkansızdır (root bile sınırlıdır, ancak root ilk olarak sistem saatini değiştirerek veya dosya sistemini içeren bölüme doğrudan erişerek ctime değerini dolaylı olarak ayarlayabilir).
Diğer cevaplar tarafından belirtilmeyen ek bir ampirik gözlem:
Dosyayı yazmak O_TRUNC
için açmak, dosya başlangıçta boş olsa bile mtime değerini değiştirir.
Bu en azından Linux 3.10'daki ext3 için geçerli.