Apakah mungkin untuk memiliki file yang memiliki tanggal modifikasi sebelum tanggal pembuatannya? Tindakan apa yang akan menyebabkan peristiwa ini terjadi?
Apakah mungkin untuk memiliki file yang memiliki tanggal modifikasi sebelum tanggal pembuatannya? Tindakan apa yang akan menyebabkan peristiwa ini terjadi?
Jawaban:
Pertimbangkan arsip .tar yang diekstrak. Biasanya file yang diekstrak akan memiliki cap waktu modifikasi terakhir yang ditetapkan dari konten arsip (yang biasanya di masa lalu kecuali jika Anda seorang penjelajah waktu). Sejauh menyangkut filesystem, file-file ini baru saja dibuat.
Ada juga utilitas untuk mengubah waktu modifikasi file yang ada, di Linux misalnya ini adalah perintah sentuh .
cp -pdan hal-hal yang meniru suka rcp -pdan scp -p, serta rsyncdengan -tatau -a, mengambil modtime dari sumbernya.
Jika Anda membuat file dari awal, itu akan membuat waktu pembuatan "sekarang", dan tanggal modifikasi "sekarang". Sekarang bayangkan menyalin file ini ke drive lain. Windows akan menjaga waktu modifikasi, tetapi waktu penciptaan file yang akan ditetapkan untuk waktu yang Anda menyalin file ke drive yang (yaitu saat berkas dibuat pada yang drive). Sederhana seperti itu.
Ini sebenarnya benar:
Di Windows, sangat mudah untuk mengatur (memalsukan, jika Anda mau) waktu yang dibuat dan dimodifikasi file. Anda tidak perlu mengubah jam komputer; Anda bahkan tidak memerlukan akses admin lokal. Yang Anda butuhkan hanyalah akses tulis ke file yang dimaksud.
Untuk mengatur waktu pembuatan file dengan PowerShell menggunakan SetCreationTime:
[System.IO.File]::SetCreationTime("C:\path\to\file.ext", (Get-Date "8/8/2088"))
Untuk mengatur waktu terakhir yang dimodifikasi menggunakan SetLastWriteTime:
[System.IO.File]::SetLastWriteTime("C:\path\to\file.ext", (Get-Date "7/4/1776"))
Di Linux, Anda dapat dengan mudah mengubah waktu file terakhir yang dimodifikasi dengan -dbendera touch, seperti yang ditunjukkan dalam jawaban Tanya Ubuntu ini . Sebenarnya tidak ada gagasan tentang tanggal pembuatan untuk file pada sistem file Linux ( bacaan lebih lanjut di Unix & Linux ).
Yang paling penting untuk diperhatikan di sini adalah waktu modifikasi file tidak terlalu spesial - disimpan seperti data lainnya. Tidak ada cara untuk mengetahui kapan data sebenarnya ditulis terakhir, atau dibaca.
Dari sini, kita dapat melihat bahwa selalu mungkin (tidak termasuk media tulis-sekali seperti CD) untuk pergi dan secara langsung memodifikasi bit pada drive yang menyimpan waktu modifikasi terakhir, atau bahkan waktu pembuatan.
Secara lebih praktis, ini juga dapat dilakukan dari dalam sistem operasi umum, seperti yang dicatat oleh jawaban lain. Di Windows, ini disediakan oleh SetFileTimefungsi WinAPI , dan Anda dapat melakukannya dengan utimedi Linux. Alat-alat suka touchmembangun di atas API ini.
Penggunaan sah yang paling umum untuk API ini adalah dalam menjaga waktu modifikasi, misalnya saat menyalin file, mengekstraknya dari arsip, dll.
Dalam pengalaman saya adalah ketika satu atau lebih komputer telah digunakan untuk memodifikasi file dan salah satunya memiliki waktu sistem yang salah. Tiga penyebab paling umum untuk kesalahan waktu sistem, tanpa urutan tertentu adalah: