Mac OS X'te bir dosyayla ilişkilendirilmiş dört farklı zaman damgası olduğu görülüyor. Bu zaman damgaları, her zaman birbirlerinden bağımsız olarak güncellenir değildir, ancak bir bakım ile biraz ve kullanımı ile bazı tek tek kontrol sahip olabilir touch
, SetFile
ve chown
(veya chmod
). Bunu görmek için, komut isteminden deney yapıp yeni bir dosya oluşturalım #
:
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Listelenen ilk tarih son erişim zamanıdır ( atime
), ikincisi son değişiklik zamanıdır ( mtime
), üçüncüsü son durum değişikliğidir ( ctime
), dördüncü dosya oluşturma zamanıdır (doğum, Btime
), bkz man lstat
.
Erişim zamanını ( atime
) belirli bir zamana göre değiştirmek için
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Değişiklik zamanını ( mtime
) ve dosya oluşturma zamanını ( Btime
) belirtilen bir zamana göre değiştirmek için:
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
Görünüşe göre bu da otomatik olarak son durum değişikliğini ( ctime
) geçerli sistem saatine göre günceller!
Yalnızca yaratma / doğum zamanını ( Btime
) belirli bir zamana göre değiştirmek için kullanın (yukarıdaki diğerleri tarafından önerildiği şekilde):
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
Yalnızca en son durum değişikliği zamanını ( ctime
) geçerli sistem saatine göre değiştirmek için, örneğin:
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
username
dosyanın sahibi nerede ( stat
veya tarafından bildirildiği gibi ls -l
). Bu, dosyanın sahipliğini değiştirmez ancak dosyanın inode'una erişir ve bunu son durum değişikliği zamanı olarak kaydeder. Ne yazık ki, bilgisayarın saatini değiştirmekten başka burada açıkça belirtilmesi mümkün değildir.
Özetle, dört zaman damgasını bağımsız olarak değiştirebilmek için, biri kullanabilir (son 3 sıraya göre):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
- [sistem tarihini ayarla]
chown username <file>
[normal sistem tarihine geri dön]
(Tabii ki, sistem tarihini sıfırlamak, risksiz bir işlem olmayabilir, siz uyardınız.)