Selama Anda adalah pemilik file (atau root), Anda dapat mengubah waktu modifikasi file menggunakan touch
perintah:
touch filename
Secara default ini akan mengatur waktu modifikasi file ke waktu saat ini, tetapi ada sejumlah flag, seperti -d
flag untuk memilih tanggal tertentu. Jadi misalnya, untuk mengatur file sebagai diubah dua jam sebelum sekarang, Anda dapat menggunakan yang berikut:
touch -d "2 hours ago" filename
Jika Anda ingin memodifikasi file relatif terhadap waktu modifikasi yang ada sebagai gantinya, berikut ini harus melakukan trik:
touch -d "$(date -R -r filename) - 2 hours" filename
Jika Anda ingin memodifikasi sejumlah besar file, Anda dapat menggunakan yang berikut ini:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
Anda dapat mengubah argumen untuk find
memilih hanya file yang Anda minati. Jika Anda hanya ingin memperbarui waktu modifikasi file relatif terhadap waktu sekarang, Anda dapat menyederhanakan ini ke:
find DIRECTORY -exec touch -d "2 hours ago" {} +
Formulir ini tidak dapat dilakukan dengan versi relatif waktu file karena menggunakan shell untuk membentuk argumen touch
.
Sejauh waktu pembuatan, kebanyakan sistem file Linux tidak melacak nilai ini. Ada yang ctime
terkait dengan file, tetapi melacak ketika metadata file terakhir diubah. Jika file tidak pernah memiliki izinnya diubah, itu mungkin terjadi untuk menahan waktu pembuatan, tetapi ini adalah suatu kebetulan. Secara eksplisit mengubah waktu modifikasi file dianggap sebagai perubahan metadata, sehingga juga akan memiliki efek samping memperbarui ctime
.
touch -d "2 hours ago" /path/*.txt
misalnya.