Dosyanın (veya kökün) sahibi olduğunuz sürece, şu touch
komutu kullanarak bir dosyanın değiştirme süresini değiştirebilirsiniz :
touch filename
Varsayılan olarak bu, dosyanın değişiklik zamanını geçerli saate ayarlar, ancak -d
belirli bir tarih seçmek için bayrak gibi bazı bayraklar vardır . Örneğin, bir dosyayı şimdiki saatten iki saat önce değiştirilmiş olarak ayarlamak için aşağıdakileri kullanabilirsiniz:
touch -d "2 hours ago" filename
Dosyayı, mevcut değişiklik zamanına göre değiştirmek yerine, aşağıdakileri yapmanız gerekir:
touch -d "$(date -R -r filename) - 2 hours" filename
Çok sayıda dosyayı değiştirmek isterseniz, aşağıdakileri kullanabilirsiniz:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
find
Yalnızca ilgilendiğiniz dosyaları seçmek için argümanları değiştirebilirsiniz . Yalnızca geçerli zamana göre dosya değiştirme zamanlarını güncellemek istiyorsanız, aşağıdakileri basitleştirebilirsiniz:
find DIRECTORY -exec touch -d "2 hours ago" {} +
Bu form, dosya zamanı göreli sürümünde mümkün değildir, çünkü argümanları oluşturmak için kabuğu kullanır touch
.
Oluşturma zamanı geldiğinde, çoğu Linux dosya sistemi bu değeri takip etmez. Orada bir olan ctime
dosyaları ile ilişkili, ancak dosya meta son değiştirildi ne zaman izler. Dosyanın izinleri hiç değişmediyse, oluşturma süresini tutabilir, ancak bu bir tesadüf. Dosya değiştirme zamanını açıkça değiştirmek, bir meta veri değişikliği olarak sayılır; bu nedenle, güncellemenin yan etkisi de olacaktır ctime
.
touch -d "2 hours ago" /path/*.txt
örneğin.