Merhabalar
Bu yazıda Linux tabanlı sistemlerde bir dosyanın son erişim zamanını ve düzenleme zamanının nasıl değiştirileceğine ve detaylarına değinceğim. Bir dosyanın özelliklerinde son erişim zamanı, düzenleme zamanı, değiştirilme zamanı, linkler, boyutu, grup id, user id vb.. bilgiler bulunmaktadır. Yazının ilerleyen bölümlerinde bahsettiğim bilgilerin ne işe yaradıklarını anlatıyor olacağım.
Biz ne zaman yeni bir dosya oluştursak veya bir dosyayı düzenlesek otomatik olarak dosya üzerindeki erişim zamanı, düzenleme zamanı, değiştirilme zamanı gibi bilgiler otomatik olarak güncellenir.
Touch Komutu Nedir?
Bildiğiniz gibi, her dosyaya bağlı zaman damgası vardır. Bu zaman damgasında, erişim zamanı, düzenleme zamanı ve değiştirilme zamanı vardır. Touch komutu dosya erişim ve düzenleme zamanlarını düzenlemek için kullanılır. Birçok kişi touch komutunun içi boş bir dosya oluşturduğu söyler. Teorik olarak doğru fakat touch komutu içi boş bir dosya oluşturmaz. Touch komutu eğer verilen isimde bir dosya var ise zaman damgasını günceller yok ise zaman damgası oluşturur.
Timestamp Hakkında
Timestamp | Description |
atime | Erişim zamanı, bir dosyayı açtığınızda veya bir dosyayı grep, cat, echo gibi komutlar ile işlemler yapıldığı zaman erişim tarihi otomatik olarak güncellenir. |
mtime | Modifiye zamanı, bir dosyanının içeriğini güncellemek veya bir dosyayı kaydedince otomatik olarak modifiye tarihi güncellenir. |
ctime | Değiştirilme zamanı ise dosyanın öznitelikleri, sahibini değiştirme gibi haklarını değiştirildiği veya başka bir yere taşındığı zaman otomatik olarak değiştirilme tarihi otomatik olarak güncellenir. |
Stat Komutu Çıktısının Yorumlanması
|
Dosya Oluşturmak
Aşağıdaki komutu kullanarak bulunduğunuz dizin içerisinde içi boş bir (reguler file) oluşturabilirsiniz. Aşağıdaki komut bulunduğunuz dizin içerisinde test.txt adlı dosya oluşturacaktır.
NOT : Eğer aşağıdaki isimle bir dosya var ise dosya üzerindeki zamanlar otomatik güncellenir. !
root# touch test.txt
Örneğin, tek bir dosya değilde birden fazla dosyayı tek bir komut ile oluşturmak isterseniz aşağıdaki komutu kullanabilirsiniz.
root# touch test.txt test1.txt test2.txt
Erişim Zamanını Düzenlemek
Bir dosyanın erişim zamanının düzenlemeden önce aşağıdaki komut kullanılarak varolan erişim zamanı görüntülenebilir.
root# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 303 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-11-12 11:40:05.667999954 -0500 ( <-- Erişim Zamanı )
Modify: 2015-11-12 11:40:05.667999954 -0500
Change: 2015-11-12 11:40:05.667999954 -0500
Bir dosyanın erişim zamanını değiştirmek isterseniz touch komutunun -a ( access time ) parametresini kullanabilirsiniz. Aşağıdaki komut varolan dosyanın erişim zamanını “1 Aralık 2015 12:35:00” olarak değiştirecektir. Aşağıdaki iki komut aynı işlevi görmektedir. Hangisi daha kolayınıza geliyorsa onu kullanabilirsiniz.
NOT : Değişiklikleri görmek isterseniz ( stat test.txt ) komutunu kullanabilirsiniz.
root# touch -a -d "1 December 2015 12:35:00" test.txt
root# touch -a -d "2015-12-01 12:35:00" test.txt
Eğer dosyanın erişim zamanını ay bazında değiştirmek isterseniz aşağıdaki komut kullanılabilir.
root# touch -a -d "14 May" test.txt
Bir diğer seçenek ise saat bazında değiştirmektir. Aşağıdaki komut kullanılarak dosyanın erişim zamanını saat bazında değiştirebilirsiniz.
root# touch -a -d "15:30" test.txt
Modifiye Zamanını Düzenlemek
Aşağıdaki komutu kullanarak bir dosyanın modifiye zamanını değiştirebilirsiniz. Örneğin, aşağıdaki komutu kullanarak dosyanın modifiye zamanını “1 Aralık 2015 12:35:00” olarak değiştirebiliriz. Aşağıdaki iki komut aynı işlevi görmektedir. Hangisi kolayınıza geliyorsa onu kullanabilirsiniz.
root# touch -m -d "1 December 2015 12:35:00" test.txt
root# touch -m -d "2015-12-01 12:35:00" test.txt
Eğer sadece ay bazında dosyanın modifiye zamanını düzenlemek isterseniz aşağıdaki komutu kullanabilirsiniz.
root# touch -m -d "14 May" test.txt
Saat bazında düzenlemek isterseniz;
root# touch -m -d "15:16" test.txt
Yukarıda yaptığımız tüm işlemleri tek bir komut ile yapabiliriz. Aşağıdaki komutu kullanarak tüm herşeyi tek bir komut ile düzenleyebilirsiniz. İstediğiniz gibi değerler verebilirsiniz. Aşağıdaki iki komut aynı işlevi görmektedir.
root# touch -m -d "2015-12-01 12:35:00.443116094 +0400" test.txt
root# touch -m --date="2020-01-20 23:05:43.443117094 +0400" test.txt
Timezone Bilgisini Düzenlemek
Bir dosyanın timezone bilgisini değiştirmeden önce aşağıdaki komutu kullanarak varolan timezone bilgisini görebilirsiniz.
root# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 303 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-11-12 11:40:05.667999954 -0500
Modify: 2015-11-12 11:40:05.667999954 -0500
Change: 2015-11-12 11:40:05.667999954 -0500
Eğer timezone bilgisini düzenlemek istersek touch komutunun -d parametresini kullanabiliriz. Aşağıda örnek olarak GMT3 zaman dilimi yer almaktadır.
NOT : Zaman diliminlerinin listesini buradan bulabilirsiniz.
root# touch -d GMT3 test.txt
Değişiklikleri görmek için aşağıdaki komutu kullanabiliriz. Aşağıdaki çıktıyı yukarıdaki çıktı ile karşılaştırıp arasında farkı görebilirsiniz.
root# stat text.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 303 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-11-12 19:00:00.000000000 -0500
Modify: 2015-11-12 19:00:00.000000000 -0500
Change: 2015-11-12 11:40:05.667999954 -0500
Bir Dosyanın Zaman Bilgilerini Kopyalamak
Bir dosyanın zaman bilgilerini bir başka dosyaya kopyalamak isterseniz touch komutunun -r parametresini kullanabilirsiniz. Aşağıdaki iki komut test.txt dosyasının zaman bilgilerini ve diğer bilgilerini alıp test1.txt adlı dosyaya aktaracaktır.
NOT : Değişiklikleri stat komutu ile kontrol ederek görebilirsiniz.
root# touch test.txt -r test1.txt
root# touch -r test.txt test1.txt
Leave a Reply