Mohli byste mi prosím dát vědět, jak mohu změnit datum vytvoření souboru v Lionu? Uvědomuji si, že existuje příkaz touch-t, ale v Lionovi to nefunguje. Pár lidí se zmínilo o jiném způsobu, ale myslím si, že řešení napsali spíše v „kodérském“ jazyce než v laickém jazyce – byl by někdo schopen na něj odpovědět laickým způsobem?

Děkujeme za vaši pomoc.

Komentáře

  • “ kodér “ vysvětlení, o kterém jiní lidé psali, je pravděpodobně odkaz na “ touch „. Vy ‚ Je třeba otevřít Terminál, přejděte do složky, kde je soubor, a poté pomocí dotykového příkazu upravte datum vytvoření nového ‚ s.
  • FWIW Jste na správných řádcích s “ touch-t „, ale mezi h a – je mezera. Je ‚ s “ touch -t “

Odpověď

touch -t normálně mění pouze úpravy a časy přístupu. Čas vytvoření se změní, pouze pokud je cílový čas před původním časem vytvoření.

touch -t 199912312359 file.txt touch -t $(date -jf %FT%T 1999-12-31T23:59:59 +%Y%m%d%H%M%S) file.txt 

SetFile -d se vždy změní čas vytvoření.

SetFile -d "12/31/1999 23:59:59" file.txt SetFile -d "$(GetFileInfo -m test.txt)" file.txt 

SetFile je součástí balíčku nástrojů příkazového řádku, který lze stáhnout od vývojáře .apple.com / stahování nebo z předvoleb Xcode.

Komentáře

  • -m pro změnu času úpravy.
  • V Yosemite mě touch vyžadoval použití formátu +%Y%m%d%H%M.%S (všimněte si tečky mezi minutami a sekundami)
  • Napsal jsem funkci s názvem CpCreationDate in fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Odpověď

V systému Mac OS X se zdá, že jsou k souboru přidruženy čtyři různé časové značky. Tyto časové značky nejsou vždy aktualizovány nezávisle na sobě, ale jeden může mít nějaké individ ual ovládání s trochou opatrnosti as použitím touch, SetFile a chown (nebo chmod). Chcete-li to vidět, nechte experimentovat a vytvořte nový soubor z příkazového řádku #:

# touch a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt 

The první uvedené datum je čas posledního přístupu (atime), druhé je čas poslední úpravy (mtime), třetí je poslední změna stavu ( ctime), čtvrtý je čas vytvoření souboru (narození, Btime), viz man lstat.

Chcete-li upravit čas přístupu (atime) na zadaný čas, použijte:

# touch -a -t201412312359.59 a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt 

Úprava času modifikace (mtime) a času vytvoření souboru (Btime) na zadaný čas použít:

# touch -m -t201312312359.59 a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt 

Tím se zjevně také automaticky aktualizuje čas poslední změny stavu (ctime) na aktuální systémový čas!

Chcete-li upravit pouze čas vytvoření / narození (Btime) na daný čas, použijte (jako pr proti ostatním výše):

# SetFile -d "12/31/1999 23:59:59" a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt 

Chcete-li upravit pouze čas poslední změny stavu (ctime) na aktuální využití systémového času například:

# chown username a.txt # stat a.txt 16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt 

kde username je vlastníkem souboru (jak uvádí stat nebo ls -l). To nezmění vlastnictví souboru, ale přistupuje k inodu souboru a zaznamenává to jako čas poslední změny stavu. Bohužel zde není možné čas výslovně specifikovat jinak než změnou času počítače …

Souhrnně, aby bylo možné nezávisle měnit čtyři časová razítka, lze je použít (v tomto objednávka pro poslední 3):

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [nastavit systémové datum] chown username <file> [vrátit se k normálnímu systémovému datu]

(Resetování systémového data samozřejmě nemusí být bezriziková operace, jste „varováni.)

Komentáře

  • +1 Děkuji za tuto velmi podrobnou odpověď. To vyřešilo všechny mé strasti.
  • Někdy skončím s fotkami, které mají nesprávné datum, protože se moje GoPro resetuje. Přenesu tyto fotografie do počítače Mac a podle těchto pokynů opravím datum, ale když je přenesu do svého iPhone, je datum stále špatné. Jediný způsob, jak jsem ‚ opravil to, je editor iOS EXIF. Existuje někde ještě další skrytý atribut data?
  • @Bowen: Data, na která odkazujete na fotografii, jsou součástí dat samotného formátu souboru s fotografií. Datum vytvoření, datum úpravy atd. Výše zmíněných souborů jsou ty, které jsou spravovány souborovým systémem vašeho operačního systému, jsou udržovány a aktualizovány samostatně podle údajů obsažených v souboru.

Odpověď

Příkazový řádek touch příkaz funguje v Lionu, ale potřebujete trochu pozadí, jak použijte jej.

Nejprve ji musíte zadat, nejde o obslužný program, který pracuje graficky v okně. Místo, kam ji napíšete, je aplikace s názvem Terminal . Najdete jej ve složce Utility nebo jej vyhledáte pomocí vyhledávání Spotlight.

Jakmile jej spustíte, zobrazí se okno příkazového řádku, do kterého můžete zadávat příkazy. Jen proto, že píšete, „ Znamená to, že to má co do činění s kódováním, ale pro někoho nového u „staromódních“ příkazů OS to může vypadat trochu zastrašující.

Takže, příkaz se jmenuje touch , a po příkazu můžete předat různé parametry, jediný požadovaný je název souboru. Zadáním následujícího nastavíte datum poslední úpravy souboru na aktuální čas:

touch filename 

Samozřejmě budete možná muset nejprve najít soubor, který by mohl vyžadovat další příkazy, abyste se k tomu dostali. pomůže zde příkaz cd nebo Změnit adresář :

cd ~/Desktop/files/PDFs touch filename 

Nebo můžete jednoduše přidat celý cesta k souboru jako součást příkazu:

touch ~/Desktop/files/PDFs/filename 

Pokročilejší použití dotykového příkazu vám umožňuje zadat čas, který chcete nastavit, namísto použití čas při spuštění, nastavit přístup namísto časů úprav atd. To dělají parametry jako -t a další. Někteří nastaví čas jako čas jiného souboru, jiní nastaví čas zpět nebo vpřed v čase o X, ( viz zde pro další podrobnosti) , např .:

touch -d "1 May 2005 10:22" file8 

Toto je z této stránky , které je také užitečná reference a skvělý příklad s některými tipy pro ty, kteří jsou nepohodlní s umístěním souborů na příkazovém řádku.

Všimněte si, že to změní jak datum upravené, tak datum vytvořené atributy, pouze pokud byl váš soubor vytvořen datum, které zadáte. Je to proto, že soubor nelze před vytvořením upravit. Pokud je vytvořeno před nastaveným datem, bude změněno pouze upravené datum.

Jak změnit atribut souboru vytvořeného podle data?

  1. Otevřete aplikaci Terminál (/Applications/Utilities/Terminal.app) nebo pokud chcete použít iTerm.

  2. Napište toto do Terminálu (bez stisknutí klávesy Enter / Return) vložením data ve formátu YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Otevřete okno Finderu a vyhledejte soubor, který chcete upravit, a přetáhněte jej do okna Terminál. Poté vloží umístění souboru pomocí terminologie příkazového řádku. Zde je příklad toho, co by mělo být v tomto okamžiku zadáno do terminálu:

    touch -t 201212211111 /Volumes/Mac\ HD/Pictures/somefile.jpg 

    201212211111 ve výše uvedeném příkladu představuje „21. prosince 2012 11:11

Komentáře

  • Ale touch upravuje upravené datum, nikoli datum vytvoření souboru.
  • Může dělat obojí. Závisí na parametrech.
  • Použití touch s parametry, které jste zadali výše, změnilo modifikaci, ale ne data vytvoření mého testovacího souboru.
  • @Daniel Pravděpodobně jste dostali odpověď, ale pro úplnost touch does upravte datum vytvoření v závislosti na argumentech. Pokud zadáte datum úpravy, které je před datem vytvoření souboru ‚, datum vytvoření se automaticky změní na novou hodnotu data úpravy, protože soubor nelze před vytvořením upravit .
  • Právě jsem to zkusil na Sierře a dotyk rozhodně nezmění datum creation. Dokázal jsem změnit access a modified data na “ datum v minulosti „, ale nezměnilo to datum vytvoření. Zkontrolujte manuálovou stránku na dotek, nezmiňuje datum vytvoření. Systém souborů: Mac OS Extended (žurnálovaný, šifrovaný). Používání SetFile -d "$(GetFileInfo -m test.txt)" file.txt fungovalo perfektně.

Odpovědět

Názory zde , zejména poslední (od Lauri Ranta, odpověděl 21. srpna v 15:21). Perfekt!

K dávkové změně více souborů nyní používám jednoduchý pracovní postup Automator:

  1. Získat vybrané položky vyhledávače
  2. Spustit skript Shell, „předat vstup : jako argumenty „

Shell skript je:

for f in "$@" do SetFile -d "$(GetFileInfo -m "$f")" "$f" done 

Funguje to jako kouzlo.

Odpověď

Nejjednodušší způsob, jak jsem zjistil, bylo vytvořit novou složku, zkopírovat všechny podsložky ze šedé složky do nové složky a voila, nová složka není šedá. Můžete to udělat i ve vyhledávači.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *