Czy można mieć plik, którego data modyfikacji jest wcześniejsza niż data jego utworzenia? Jakie działania spowodowałyby wystąpienie tego zdarzenia?
metadata
file-attributes
AlexanderRD
źródło
źródło
Odpowiedzi:
Rozważ rozpakowane archiwum .tar. Zazwyczaj wyodrębnione pliki będą miały znacznik czasu ostatniej modyfikacji przypisany z zawartości archiwum (co zwykle ma miejsce w przeszłości, chyba że jesteś podróżnikiem w czasie). Jeśli chodzi o system plików, pliki te zostały właśnie utworzone.
Istnieją również narzędzia do zmiany czasu modyfikacji istniejących plików, na przykład w Linuksie jest to polecenie dotykowe .
źródło
cp -p
a rzeczy, które imitują go jakrcp -p
iscp -p
, a takżersync
z-t
lub-a
bierze czasy modyfikacji ze źródła.Jeśli utworzysz plik od zera, otrzyma on czas utworzenia „teraz” i datę modyfikacji „teraz”. Teraz wyobraź sobie kopiowanie tego pliku na inny dysk. System Windows zachowa czas modyfikacji, ale czas utworzenia tego pliku zostanie ustawiony na czas skopiowania pliku na ten dysk (tj. Czas utworzenia pliku na tym dysku). Proste.
To jest właściwie poprawne:
źródło
W systemie Windows bardzo łatwo jest ustawić (sfałszować, jeśli chcesz) czas utworzenia i modyfikacji pliku. Nie musisz zmieniać zegara komputera; nie potrzebujesz nawet dostępu lokalnego administratora. Wszystko czego potrzebujesz to dostęp do zapisu do danego pliku.
Aby ustawić czas tworzenia pliku za pomocą programu PowerShell przy użyciu
SetCreationTime
:Aby ustawić czas ostatniej modyfikacji za pomocą
SetLastWriteTime
:W systemie Linux możesz łatwo zmienić czas ostatniej modyfikacji pliku za pomocą
-d
flagitouch
, jak pokazano w odpowiedzi na pytanie Ubuntu . Tak naprawdę nie ma pojęcia daty utworzenia plików w systemach plików Linux ( dalsze czytanie w Unix i Linux ).źródło
Tak. W systemie Windows zmień plik i zapisz go. Teraz skopiuj plik. Patrząc na właściwości kopii, zobaczysz, że ma ona wcześniejszą datę modyfikacji.
źródło
Najważniejszą rzeczą do odnotowania tutaj jest to, że czas modyfikacji pliku nie jest tak naprawdę szczególny - jest przechowywany tak jak inne dane. Nie sposób powiedzieć, kiedy dane zostały faktycznie ostatni zapisywane lub odczytywane z.
Stąd możemy zobaczyć, że zawsze jest możliwe (z wyjątkiem nośników jednokrotnego zapisu, takich jak CD), aby przejść i bezpośrednio zmodyfikować bity na dysku przechowującym czas ostatniej modyfikacji, a nawet czas utworzenia.
Praktycznie rzecz biorąc, jest to również wykonalne z poziomu wspólnych systemów operacyjnych, jak zauważyły inne odpowiedzi. W systemie Windows jest to zapewniane przez funkcję WinAPI
SetFileTime
i można to zrobićutime
w systemie Linux. Narzędzia takie jaktouch
budowanie na tych interfejsach API.Najczęstszym uzasadnionym zastosowaniem tych interfejsów API jest zachowanie czasu modyfikacji, np. Podczas kopiowania plików, wyodrębniania ich z archiwów itp.
źródło
Z mojego doświadczenia wynika, że jeden lub więcej komputerów zostało użytych do modyfikacji pliku, a jeden z nich ma niewłaściwy czas systemowy. Trzy najczęstsze przyczyny nieprawidłowego działania systemu, w żadnej określonej kolejności, to:
źródło