Czy możesz dać mi znać, jak mogę zmienić datę utworzenia pliku w Lionie. Zdaję sobie sprawę, że istnieje polecenie touch-t, ale to nie działa w Lion. Kilka osób wspomniało o innym sposobie, ale myślę, że napisali rozwiązanie w języku „kodera” zamiast w języku laika - czy ktoś byłby w stanie odpowiedzieć na nie w sposób, który może wykonać laik?
Wielkie dzięki za Twoją pomoc.
Odpowiedzi:
touch -t
zwykle zmienia tylko modyfikacje i czasy dostępu. Zmienia czas tworzenia tylko wtedy, gdy czas docelowy jest wcześniejszy niż pierwotny czas utworzenia.SetFile -d
zawsze zmienia czas tworzenia.SetFile jest częścią pakietu narzędzi wiersza poleceń, który można pobrać ze strony developer.apple.com/downloads lub z preferencji Xcode.
źródło
+%Y%m%d%H%M.%S
(zauważ kropkę między minutami a sekundami)CpCreationDate
wfish
:SetFile -d (GetFileInfo -m $argv[1]) $argv[2]
W systemie Mac OS X wydaje się, że z plikiem związane są cztery różne znaczniki czasu. Te znaczniki czasu nie zawsze są aktualizowane niezależnie od siebie, ale można mieć pewną kontrolę indywidualną z odrobiną starannością i przy użyciu
touch
,SetFile
ichown
(lubchmod
). Aby to zobaczyć, eksperymentujmy i utwórz nowy plik z wiersza poleceń#
:Pierwsza wymieniona data to godzina ostatniego dostępu (
atime
), druga to godzina ostatniej modyfikacji (mtime
), trzecia to ostatnia zmiana statusu (ctime
), czwarta to data utworzenia pliku (urodzeniaBtime
), patrzman lstat
.Aby zmodyfikować czas dostępu (
atime
) do określonego czasu, użyj:Aby zmodyfikować czas modyfikacji (
mtime
) i czas utworzenia pliku (Btime
) do określonego czasu:Najwyraźniej automatycznie aktualizuje również czas ostatniej zmiany statusu (
ctime
) do aktualnego czasu systemowego!Aby zmodyfikować tylko czas utworzenia / urodzenia (
Btime
) do określonego czasu, użyj (zgodnie z propozycją innych powyżej):Aby zmodyfikować tylko czas ostatniej zmiany statusu (
ctime
) do bieżącego czasu systemowego, użyj na przykład:gdzie
username
jest właścicielem pliku (według zgłoszeniastat
lubls -l
). Nie zmienia to własności pliku, ale uzyskuje dostęp do i-węzła pliku i zapisuje to jako czas ostatniej zmiany statusu. Niestety nie jest możliwe jednoznaczne określenie tutaj czasu inaczej niż poprzez zmianę czasu komputera ...Podsumowując, aby móc niezależnie zmieniać cztery znaczniki czasu, można użyć (w tej kolejności dla ostatnich 3):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[przywróć normalną datę systemową](Oczywiście, resetowanie daty systemowej może nie być operacją wolną od ryzyka, ostrzegłeś).
źródło
Polecenie wiersza
touch
polecenia działa w programie Lion, ale potrzebujesz trochę tła, jak go używać.Po pierwsze, musisz go wpisać, nie jest to narzędzie działające graficznie w oknie. Miejsce, w którym je wpisujesz, to aplikacja o nazwie Terminal . Możesz to znaleźć w folderze Narzędzia lub skorzystać z wyszukiwania Spotlight, aby go znaleźć.
Po uruchomieniu pojawi się okno wiersza poleceń, w którym możesz wpisywać polecenia. To, że piszesz, nie oznacza, że ma to coś wspólnego z kodowaniem, ale dla kogoś, kto jest nowicjuszem w „staromodnych” komendach systemu operacyjnego, może to wyglądać nieco zastraszająco.
Tak więc polecenie nazywa się dotykiem , a po poleceniu można przekazać różne parametry, jedynym wymaganym jest nazwa pliku. Wpisanie następującego spowoduje ustawienie daty ostatniej modyfikacji pliku na bieżącą godzinę:
Oczywiście może być konieczne najpierw znalezienie pliku, co może wymagać dalszych poleceń, aby się do niego dostać. cd lub Zmień katalog komenda pomaga tutaj:
Lub możesz po prostu dodać pełną ścieżkę do pliku jako część polecenia:
Bardziej zaawansowane użycie polecenia dotykowego pozwala określić czas, który chcesz ustawić, zamiast korzystać z czasu wykonania, ustawić dostęp zamiast czasów modyfikacji itp. To właśnie robią parametry takie jak -t i inni. Niektórzy ustawiają czas na czas innego pliku, niektórzy ustawiają cofanie lub przewijanie w czasie o X, ( patrz tutaj po więcej szczegółów), np .:
Poniżej znajduje się ta strona, która jest również przydatnym odniesieniem i doskonałym przykładem z kilkoma wskazówkami dla tych, którzy nie czują się komfortowo z lokalizacjami plików w wierszu poleceń
Pamiętaj, że spowoduje to zmianę atrybutów daty modyfikacji i daty utworzenia tylko, jeśli plik został utworzony po wprowadzonej dacie. Wynika to z faktu, że pliku nie można zmodyfikować przed jego utworzeniem. Jeśli utworzono przed ustawioną datą, tylko zmodyfikowana data zostanie zmieniona.
źródło
touch
modyfikuje datę modyfikacji, a nie datę utworzenia pliku.touch
parametrów podanych powyżej zmieniło modyfikację, ale nie daty utworzenia mojego pliku testowego.touch
robi zmodyfikować datę utworzenia w zależności od argumentów. Jeśli podasz datę modyfikacji wcześniejszą niż data utworzenia pliku, data utworzenia automatycznie zmieni się na nową wartość daty modyfikacji, ponieważ pliku nie można zmodyfikować przed jego utworzeniem.creation
daty. Udało mi się zmienićaccess
imodified
pochodzi z „datą w przeszłości”, ale nie modyfikować datę utworzenia. Sprawdź stronę podręcznika dotykowego, nie wspomina o dacie utworzenia. System plików: Mac OS Extended (Journaled, Encrypted). KorzystanieSetFile -d "$(GetFileInfo -m test.txt)" file.txt
działało idealnie.Wielkie wskazówki tutaj, w szczególności ostatnia (od Lauri Ranta, odpowiedział 21 sierpnia o 15:21). Perfekt!
Teraz używam prostego przepływu pracy Automatora, aby grupowo zmieniać wiele plików:
Skrypt powłoki to:
To działa jak urok.
źródło
Najprostszym sposobem, jaki znalazłem, było utworzenie nowego folderu, skopiowanie wszystkich podfolderów wyszarzonego folderu do nowego folderu i voila, nowy folder nie jest wyszarzony. Możesz to zrobić nawet w wyszukiwarce.
źródło