Jak ustawić czas utworzenia pliku?

6

Mam skrypt, który konwertuje plik na inny format, i chcę, aby plik wynikowy miał takie same znaczniki czasu jak oryginał, w tym czas utworzenia (jak pokazano przez ls -lU).

Mogę użyć dotyku, aby ustawić czas dostępu i modyfikacji, ale nie widzę sposobu na ustawienie czasu tworzenia.

dkagedal
źródło

Odpowiedzi:

3
touch -t YYYYMMDDhhmm file.ext

Spowoduje to ustawienie dat modyfikacji i utworzenia pliku. Uruchomiłem go na pliku, który utworzyłem dziś rano, i oto, co mówi Get Info:

wprowadź opis zdjęcia tutaj

Nathan Greenstein
źródło
Oczywiście powinienem najpierw to przetestować :-) Dzięki
dkagedal
Nathan, czy plik istniał, zanim go „dotknąłeś”? touchnie zmienia dat utworzenia, chyba że sam tworzy plik.
nohillside
-1 touchustawi datę utworzenia pliku tylko wtedy, gdy utworzy plik lub jeśli nowa data jest wcześniejsza niż data utworzenia pliku . (Nie można mieć pliku, którego data modyfikacji jest wcześniejsza niż data jego utworzenia.) To rozwiązanie nie działa, jeśli nowa data jest późniejsza niż data utworzenia pliku. SetFileRozwiązanie zawsze będzie działać.
TachyonVortex
4

SetFile można również wykorzystać do ustawienia daty utworzenia przed datą modyfikacji lub w przyszłości.

-d date    Sets the creation date, where date is a string of the
           form: "mm/dd/[yy]yy [hh:mm:[:ss] [AM | PM]]" Notes:
           Enclose the string in quotation marks if it contains spa-
           ces. The date must be in the Unix epoch, that is, between
           1/1/1970 and 1/18/2038. If the year is provided as a two-
           digit year, it is assumed to be in the 21st century and
           must be from 00 (2000) through 38 (2038).

Ustawiłoby to datę utworzenia na datę modyfikacji:

SetFile -d "$(GetFileInfo -m test.txt)" test.txt

SetFile i GetFileInfo są częścią pakietu narzędzi wiersza poleceń, który można pobrać ze strony developer.apple.com/downloads lub z preferencji Xcode po zainstalowaniu go w App Store.

Lri
źródło