Kan du gi meg beskjed om hvordan jeg kan endre opprettelsesdatoen for en fil i Lion. Jeg skjønner at det er touch-t-kommandoen, men det fungerer ikke i Lion. Et par mennesker har nevnt en annen måte, men jeg tror de har skrevet løsningen på «koder» -språk i stedet for lekespråk – ville noen kunne svare på det på en måte en lekmann kan utføre?

Tusen takk for hjelpen.

Kommentarer

  • » koderen » forklaring andre mennesker har skrevet om, er sannsynligvis en referanse til » berør «. Du ‘ d må åpne en terminal, naviger til mappen der filen er og bruk deretter berøringskommandoen til å endre fie ‘ s opprettelsesdato.
  • FWIW Du er på de rette linjene med » touch-t «, men det er et mellomrom mellom h og -. Det ‘ s » touch -t »

Svar

touch -t endrer normalt bare modifikasjon og tilgangstider. Det endrer bare opprettelsestiden hvis måltiden er før den opprinnelige opprettelsestiden.

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 endres alltid opprettelsestid.

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

SetFile er en del av kommandolinjeverktøypakken som kan lastes ned fra utvikler .apple.com / nedlastinger eller fra Xcodes preferanser.

Kommentarer

  • -m for å endre endringstid.
  • I Yosemite, berørte touch meg om å bruke formatet +%Y%m%d%H%M.%S (legg merke til prikken mellom minutter og sekunder)
  • Jeg skrev en funksjon kalt CpCreationDate i fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Svar

I Mac OS X ser det ut til at det er fire forskjellige tidsstempler knyttet til en fil. oppdateres ikke alltid uavhengig av hverandre, men man kan ha noen individ ual kontroll med litt forsiktighet og med bruk av touch, SetFile, og chown (eller chmod). For å se dette, la oss eksperimentere og opprette en ny fil fra ledeteksten #:

# 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 første datoen som er oppført er siste tilgangstid (atime), den andre er siste modifikasjonstid (mtime), den tredje er siste statusendring ( ctime), den fjerde er tidspunktet for filoppretting (fødsel, Btime), se man lstat.

For å endre tilgangstid (atime) til en spesifisert tidsbruk:

# 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 

For å endre modifiseringstid (mtime) og tidspunkt for filoppretting (Btime) til et spesifisert tidspunkt bruk:

# 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 

Dette oppdateres tilsynelatende automatisk tidspunktet for siste statusendring (ctime) til gjeldende systemtid!

Hvis du bare vil endre tidspunktet for opprettelse / fødsel (Btime) til et gitt tidspunkt, bruk (som pr valgt av andre ovenfor):

# 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 

For å bare endre tidspunktet for siste statusendring (ctime) til gjeldende systembruk for eksempel:

# 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 

der username er eieren av filen (som rapportert av stat eller ls -l). Dette endrer ikke eierskapet til filen, men får tilgang til filens inode og registrerer dette som en tid for siste statusendring. Dessverre er det ikke mulig å spesifisere tiden eksplisitt her annet enn ved å endre datamaskinens tid …

Oppsummert, for å kunne endre de fire tidsstemplene uavhengig, kan man bruke (i dette rekkefølge for de siste 3):

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [angi systemdato] chown username <file> [gå tilbake til normal systemdato]

(Å tilbakestille systemdatoen er kanskje ikke en risikofri operasjon, du har blitt advart.)

Kommentarer

  • +1 Takk for dette super detaljerte svaret. Dette løste alle mine problemer.
  • Noen ganger får jeg bilder som har feil datoer, fordi GoPro-en min tilbakestiller seg selv. Jeg overfører disse bildene til min Mac, og fikser datoen i henhold til disse instruksjonene, men når jeg overfører disse bildene til min iPhone, er datoen fortsatt feil. Den eneste måten jeg ‘ har funnet å fikse, er med en iOS EXIF-editor. Er det enda en skjult datoattributt et sted?
  • @ Bowen: Datoene du refererer til på et bilde, er en del av dataene i selve bildefilformatet. Opprettelsesdato, endringsdato osv. For filer som er referert til ovenfor er de som administreres av filsystemet til operativsystemet ditt, de vedlikeholdes og oppdateres separat til dataene i filen.

Svar

Kommandolinjen touch -kommandoen fungerer i Lion, men du trenger litt bakgrunn for hvordan du bruk den.

For det første må du skrive den inn, det er ikke et verktøy som fungerer grafisk i et vindu. Stedet du skriver det inn er en app som heter Terminal . Du kan finne dette i Verktøy-mappen din, eller bruke Spotlight-søk for å finne den.

Når du har startet den, får du et kommandolinjevindu der du kan skrive inn kommandoer. Bare fordi du skriver ikke » Det betyr at det har noe å gjøre med koding, men for noen nye til «gammeldagse» OS-kommandoer kan det se litt skremmende ut.

Så, kommandoen heter touch , og etter kommandoen kan du passere forskjellige parametere, den eneste nødvendige være filnavnet. Hvis du skriver inn følgende, setter den sist endrede datoen for filen til gjeldende tid:

touch filename 

Selvfølgelig må du kanskje finne filen først, noe som kan krever flere kommandoer for å komme til det. kommandoen cd eller Change Directory hjelper her:

cd ~/Desktop/files/PDFs touch filename 

Eller du kan bare legge til hele sti til filen som en del av kommandoen:

touch ~/Desktop/files/PDFs/filename 

Mer avansert bruk av berøringskommandoen lar deg spesifisere tiden du vil angi, i stedet for å bruke tiden ved utførelse, angi tilgang i stedet for modifikasjonstider osv. Dette er hva parametere som -t og andre gjør. Noen setter tiden til å være tiden for en annen fil, noen setter den til å gå tilbake, eller fremover i tid med X-beløp, ( se her for mer informasjon) , f.eks:

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

Følgende er fra denne siden som også er nyttig referanse, og et godt eksempel med noen tips for de som er ukomfortable med filplasseringer på kommandolinjen

Merk at dette bare endrer attributtene for endring av dato og dato opprettet bare hvis filen ble opprettet etter datoen du angir. Dette er fordi en fil ikke kan endres før den er opprettet. Hvis den ble opprettet før datoen du angir, endres bare den endrede datoen.

Hvordan endrer du datoen som ble opprettet for en fil?

  1. Åpne terminalapplikasjonen (/Applications/Utilities/Terminal.app), eller bruk iTerm hvis du foretrekker det.

  2. Type dette i Terminal (uten å trykke enter / return) og setter inn datoen i formatet YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Åpne et Finder-vindu og finn filen du vil endre, og dra og slipp den inn i Terminal-vinduet, den vil da sette inn filplasseringen ved hjelp av kommandolinjeterminologien. Her er et eksempel på hva som skal skrives inn i terminalen på dette punktet:

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

    201212211111 i eksemplet ovenfor representerer “21. desember 2012 11:11

Kommentarer

  • Men touch endrer den endrede datoen, ikke opprettelsesdatoen for filen.
  • Den kan gjøre begge deler. Avhenger av parametrene.
  • Ved å bruke touch med parametrene du ga ovenfor endret modifikasjonsdatoen for testfilen min.
  • @Daniel Du har sannsynligvis fått svaret ditt, men for fullstendighetens skyld touch gjør endre opprettelsesdatoen avhengig av argumentene. Hvis du oppgir en endringsdato som ligger før filen ‘ opprettelsesdato, vil opprettelsesdatoen automatisk endres til den nye modifikasjonsdatoverdien, ettersom en fil ikke kan endres før den er opprettet .
  • Jeg har nettopp prøvd dette på Sierra og berører definitivt ikke endrer creation datoen. Jeg kunne endre access og modified datoer til en » dato tidligere «, men det endret ikke opprettelsesdatoen. Sjekk mannssiden for berøring, den nevner ikke opprettelsesdatoen. Filsystem: Mac OS Extended (Journaled, Encrypted). Å bruke SetFile -d "$(GetFileInfo -m test.txt)" file.txt fungerte perfekt.

Svar

Stortips her , spesielt den siste (fra Lauri Ranta, svarte 21. august kl. 15:21). Perfekt!

Jeg bruker nå en enkel Automator-arbeidsflyt for å batchendre flere filer:

  1. Få valgte Finder-elementer
  2. Kjør Shell Script, «Pass input : som argumenter «

Skallskriptet er:

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

Dette fungerer som en sjarm.

Svar

Den enkleste måten jeg fant var å opprette en ny mappe, kopiere alle undermappene til den gråtonede mappen inn i den nye mappen, og voila, den nye mappen er ikke nedtonet. Du kan til og med gjøre dette i søkeren.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *