Dapatkah file tampak dimodifikasi sebelum dibuat? [duplikat]

9

Apakah mungkin untuk memiliki file yang memiliki tanggal modifikasi sebelum tanggal pembuatannya? Tindakan apa yang akan menyebabkan peristiwa ini terjadi?

AlexanderRD
sumber
7
Buat file. Hidupkan kembali jam. Ubah file. Pasang kembali jam.
DavidPostill
@ Davidvidost Perhatikan bahwa, setidaknya pada Windows, mengubah waktu sistem memerlukan hak administratif, sementara ada cara lain untuk membuat waktu file lucu yang tidak.
Ben N

Jawaban:

8

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 .

Lekensteyn
sumber
Dan untuk satu file, cp -pdan hal-hal yang meniru suka rcp -pdan scp -p, serta rsyncdengan -tatau -a, mengambil modtime dari sumbernya.
dave_thompson_085
"Waktu pembuatan" adalah istilah windows bukan * nix. * nix memiliki "perubahan waktu" yang mudah dikacaukan dengan "waktu pembuatan" tetapi bukan hal yang sama.
plugwash
ext4 rupanya menyimpan "waktu lahir" yang mirip dengan (tetapi tidak sama dengan) jendela "waktu pembuatan" tetapi tidak ada cara yang baik untuk mengaksesnya. unix.stackexchange.com/a/50184/122182
plugwash
8

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:

  • Terakhir kali isi file diubah disimpan dalam waktu modifikasi.
  • Waktu file dibuat pada drive ini disimpan dalam waktu pembuatan.
Ro-ee
sumber
Komentar ini paling masuk akal karena menunjukkan skenario yang sangat mungkin terjadi ketika perbedaan tanggal dibuat / dimodifikasi akan terjadi.
Shukri Adams
7

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 ).

Ben N
sumber
3

Iya. Di Windows, buat perubahan pada file dan simpan. Sekarang salin file tersebut. Melihat properti dari salinan, Anda akan melihatnya memiliki tanggal modifikasi yang lebih awal.

David
sumber
1

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.

Bob
sumber
0

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:

  1. Tidak semua komputer dikonfigurasi untuk secara otomatis berubah ke waktu musim panas.
  2. Orang-orang "secara tidak sengaja" mengubah waktu sistem pada komputer.
  3. Orang-orang "dengan sengaja" mengubah waktu sistem pada komputer sebagai lelucon.
Tai Paul
sumber