Puteți să-mi spuneți cum pot modifica data de creare a unui fișier în Lion. Îmi dau seama că există comanda touch-t, dar asta nu funcționează în Lion. Câțiva oameni au menționat un alt mod, dar cred că „au scris soluția în limbajul„ coder ”, mai degrabă decât în limbajul profan – ar putea cineva să răspundă într-un mod pe care un profan îl poate executa? Multe mulțumiri pentru ajutor.

Comentarii

  • Coderul ” ” explicația despre care au scris alte persoane este probabil o referință la ” atingere „. Tu ‘ ar trebui să deschideți un terminal, navigați la folderul în care se află fișierul, apoi folosiți comanda tactilă pentru a modifica data de creare a fi ‘.
  • FWIW Sunteți pe liniile potrivite cu ” touch-t „, dar există un spațiu între h și -. ‘ s ” atingeți -t ”

Răspuns

touch -t în mod normal modifică doar modificarea și timpul de acces. Modifică timpul de creație numai dacă timpul țintă este înainte de momentul inițial de creare.

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 schimbă întotdeauna timpul de creare.

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

SetFile face parte din pachetul de instrumente din linia de comandă care poate fi descărcat de la dezvoltator .apple.com / downloads sau din preferințele Xcode.

Comentarii

  • -m pentru modificarea timpului de modificare.
  • În Yosemite, atingerea mi-a cerut să folosesc formatul +%Y%m%d%H%M.%S (observați punctul între minute și secunde)
  • Am scris o funcție numită CpCreationDate în fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Răspuns

În Mac OS X pare să existe patru timestampuri diferite asociate cu un fișier. Aceste timestamps nu sunt întotdeauna actualizate independent unul de celălalt, dar se poate avea unele persoane control ual cu puțină grijă și cu utilizarea touch, SetFile și chown (sau chmod). Pentru a vedea acest lucru, experimentăm și creăm un fișier nou din promptul de comandă #:

# 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 

prima dată listată este ultima oră de acces (atime), a doua este ora ultimei modificări (mtime), a treia este ultima modificare de stare ( ctime), al patrulea este momentul creării fișierului (naștere, Btime), consultați man lstat.

Pentru a modifica timpul de acces (atime) la un timp specificat utilizați:

# 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 

Pentru a modifica timpul de modificare (mtime) și timpul de creare a fișierului (Btime) la un timp specificat utilizați:

# 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 

Se pare că acest lucru actualizează automat și ora ultimei modificări de stare (ctime) la ora curentă a sistemului!

Pentru a modifica doar timpul de creație / naștere (Btime) la un anumit timp, utilizați (ca pr opus de alții de mai sus):

# 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 

Pentru a modifica doar ora ultimei modificări de stare (ctime) la utilizarea curentă a sistemului de timp, de exemplu:

# 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 

unde username este proprietarul fișierului (după cum a raportat stat sau ls -l). Acest lucru nu schimbă calitatea de proprietar al fișierului, dar accesează inodul fișierului și îl înregistrează ca moment al ultimei modificări de stare. Din păcate, nu este posibilă specificarea orei în mod explicit aici, altfel decât prin schimbarea timpului computerului …

În rezumat, pentru a putea schimba cele patru timestampuri în mod independent, se poate utiliza (în acest comanda pentru ultimele 3):

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [setați data sistemului] chown username <file> [reveniți la data normală a sistemului]

(Desigur, resetarea datei sistemului poate să nu fie o operațiune fără riscuri, ați fost „avertizat.)

Comentarii

  • +1 Vă mulțumim pentru acest răspuns foarte detaliat. Acest lucru a rezolvat toate problemele mele.
  • Uneori ajung cu fotografii care au date incorecte, deoarece GoPro se resetează singur. Transfer aceste fotografii pe Mac-ul meu și fixez data conform acestor instrucțiuni, dar când transfer aceste fotografii pe iPhone-ul meu, data este încă greșită. Singurul mod în care am ‘ găsit pentru a remedia acest lucru este cu un editor EXIF iOS. Mai există un alt atribut de dată ascuns undeva?
  • @Bowen: datele la care faceți referire într-o fotografie fac parte din datele formatului de fișier foto în sine. Data creării, data modificării etc. a fișierelor menționate mai sus sunt cele gestionate de sistemul de fișiere al sistemului dvs. de operare, sunt menținute și actualizate separat la datele conținute în fișier.

Răspuns

Comanda din linia de comandă touch funcționează în Lion, dar aveți nevoie de câteva informații despre cum să folosiți-l.

În primul rând, trebuie să îl introduceți, nu este un utilitar care funcționează grafic într-o fereastră. Locul în care îl tastați este o aplicație numită Terminal . Puteți găsi acest lucru în folderul Utilities sau puteți utiliza Spotlight Search pentru a-l găsi.

Odată ce îl porniți, veți obține o fereastră de linie de comandă în care puteți introduce comenzi. Doar pentru că tastați nu ” Nu înseamnă că are ceva de-a face cu codarea, dar pentru cineva nou în comenzile sistemului de operare „de modă veche” poate părea puțin intimidant.

Deci, comanda se numește touch , iar după comandă puteți trece diverși parametri, singurul necesar fiind numele fișierului. Dacă tastați următoarele, ultima dată modificată a fișierului va fi setată la ora curentă:

touch filename 

Desigur, poate fi necesar să găsiți mai întâi fișierul, care ar putea necesită alte comenzi pentru a ajunge la el. comanda cd sau Change Directory vă ajută aici:

cd ~/Desktop/files/PDFs touch filename 

Sau, puteți adăuga pur și simplu calea către fișier ca parte a comenzii:

touch ~/Desktop/files/PDFs/filename 

Utilizarea mai avansată a comenzii tactile vă permite să specificați timpul pe care doriți să îl setați, mai degrabă decât să utilizați timpul de execuție, setați accesul în loc de timpii de modificare etc. Așa fac parametrii precum -t și alții. Unii stabilesc ora pentru a fi ora unui alt fișier, unii îl setează să revină sau să înainteze în timp cu suma X, ( vezi aici pentru mai multe detalii) , de exemplu:

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

Următorul este din această pagină care este, de asemenea, referință utilă și un exemplu excelent cu câteva sfaturi pentru cei care nu sunt confortabili cu locațiile fișierelor pe linia de comandă

Rețineți că acest lucru va schimba atât data modificării, cât și data atributelor create numai dacă fișierul dvs. a fost creat după data la care introduceți. Acest lucru se datorează faptului că un fișier nu poate fi modificat înainte de a fi creat. Dacă este creat înainte de data setată, doar data modificată va fi modificată.

Cum se modifică atributul datei create a unui fișier?

  1. Deschideți aplicația Terminal (/Applications/Utilities/Terminal.app) sau dacă preferați să utilizați iTerm.

  2. Tastați aceasta în Terminal (fără a apăsa Enter / Return) inserând data în formatul YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Deschideți o fereastră Finder și localizați fișierul pe care doriți să-l modificați și trageți-l și fixați-l în fereastra Terminal, apoi va insera locația fișierului folosind terminologia liniei de comandă. Iată un exemplu de ceea ce trebuie introdus în Terminal în acest moment:

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

    201212211111 în exemplul de mai sus reprezintă „21 decembrie 2012 11:11 AM

Comentarii

  • Dar touch modifică data modificată, nu data creării fișierului.
  • Poate face ambele. Depinde de parametri.
  • Utilizarea touch cu parametrii pe care i-ați dat mai sus a modificat modificarea, dar nu datele de creare a fișierului meu de testare.
  • @Daniel Probabil că ați primit răspunsul dvs., dar din motive de completare touch face să modificați data creării în funcție de argumente. Dacă furnizați o dată de modificare care este înainte de data creării fișierului ‘, data de creație se va schimba automat la noua valoare a datei de modificare, deoarece un fișier nu poate fi modificat înainte de a fi creat .
  • Tocmai am încercat acest lucru pe Sierra și ating cu siguranță nu schimbă data creation. Am putut schimba datele access și modified la o dată ” din trecut „, dar nu a modificat data creării. Verificați pagina manuală pentru atingere, nu menționează data creării. Sistem de fișiere: Mac OS Extended (Journaled, Encrypted). Folosirea SetFile -d "$(GetFileInfo -m test.txt)" file.txt a funcționat perfect.

Răspuns

Sugestii mari aici , în special ultima (de la Lauri Ranta, a răspuns 21 august la 15:21). Perfekt!

Acum folosesc un simplu flux de lucru Automator pentru a modifica în serie mai multe fișiere:

  1. Obțineți elemente selectate de căutare
  2. Rulați scriptul Shell, „Treceți intrarea : ca argumente „

Scriptul shell este:

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

Acest lucru funcționează ca un farmec.

Răspuns

Cel mai simplu mod pe care l-am găsit a fost să creez un folder nou, să copiați toate subdirectoarele folderului cu gri în noul dosar și voila, noul dosar nu este gri. Puteți face acest lucru chiar și în căutare.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *