Bir Dosyanın Modifiye ve Erişim Zamanını Düzenleme.

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ı

  • File : Dosyanın ismini gösterir.   ( /home/lifeoverlinux/test.txt gibi )
  • Size : Dosyanın boyutunu gösterir.   ( 856 gibi)
  • Blocks : Dosyanın kullandığı block sayısının toplamı.    ( 8  gibi)
  • IO Block : Dosyanın IO block boyutunu gösterir.    ( 4096 )
  • Reguler file : Dosyanın türünü gösterir. Burada basit bir dosya olduğunu söylüyor. Bilinen dosya türleri aşağıdaki gibidir.
  • reguler file : Normal basit dosya.
  • directory : Normal bir dizin.
  • socket. Soketler.
  • symbolic link : Sembolik linkler.
  • block special file : Hard disk. ( detaylar )
  • character special file : Terminal aygıt dosyası.
  • Device : Büyük ve küçük aygıt dosyasının bulunduğu aygıtın bir değeridir.   ( 801h/2049d gibi)
  • Inode : Inode numarası dosya sistemi tarafından iç bakım için kullanılan her dosya için benzersiz bir sayıdır.    ( 1058122 gibi )
  • Links : Dosyanın bağlı olduğu link sayısı.   ( 1 )
  • Gid : Dosyanın hangi grupta olduğunu gösterir.   ( 1000 / root )
  • Uid : Dosya sahibinin kullanıcı kimliğini veya kullanıcı adını gösterir.   ( 1000 / root )
  • Access : Dosyanın son erişim zamanı.   ( 2015-12-11 19:29:57.000000000 -0500 )
  • Modify : Dosyanın son modifiye zamanı.  ( 2015-12-11 19:29:57.000000000 -0500 )
  • Change : Dosyanın son değişitirilme zamanı. ( 2015-12-11 19:29:57.000000000 -0500 )

 

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  

Tagged with: , , , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*

one × 4 =

Archives

Tweets