Kan du venligst fortælle mig, hvordan jeg kan ændre oprettelsesdatoen for en fil i Lion. Jeg er klar over, at der er kommandoen touch-t, men det fungerer ikke i Lion. Et par mennesker har nævnt en anden måde, men jeg tror, at de “har skrevet løsningen på” koder “-sprog snarere end lægmandssprog – ville nogen være i stand til at besvare det på en måde, som en lægmand kan udføre?

Mange tak for din hjælp.

Kommentarer

  • ” -koderen ” forklaring, som andre mennesker har skrevet om, er sandsynligvis en henvisning til ” touch “. Du ‘ skal åbne en terminal, navigere til den mappe, hvor filen er, og brug derefter kommandoen touch til at ændre fie ‘ oprettelsesdato.
  • FWIW Du er på de rigtige linjer med ” touch-t “, men der er et mellemrum mellem h og -. Det ‘ s ” touch -t ”

Svar

touch -t ændrer normalt kun ændringer og adgangstider. Det ændrer kun oprettelsestiden, hvis måltiden er før den oprindelige oprettelsestid.

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 ændres altid oprettelsestid.

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

SetFile er en del af kommandolinjeværktøjspakken, som kan downloades fra udvikler .apple.com / downloads eller fra Xcodes indstillinger.

Kommentarer

  • -m til ændring af ændringstid.
  • I Yosemite krævede touch mig at bruge formatet +%Y%m%d%H%M.%S (bemærk prikken mellem minutter og sekunder)
  • Jeg skrev en funktion kaldet CpCreationDate i fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Svar

I Mac OS X synes der at være fire forskellige tidsstempler tilknyttet en fil. Disse tidsstempler opdateres ikke altid uafhængigt af hinanden, men man kan have nogle individuelle ual kontrol med lidt omhu og med brug af touch, SetFile og chown (eller chmod). For at se dette, lad os eksperimentere og oprette en ny fil fra kommandoprompten #:

# 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 

den første dato, der er angivet, er den sidste adgangstid (atime), den anden er den sidste ændringstid (mtime), den tredje er den sidste statusændring ( ctime), den fjerde er tidspunktet for filoprettelse (fødsel, Btime), se man lstat.

For at ændre adgangstid (atime) til en bestemt tidsanvendelse:

# 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 at ændre ændringstid (mtime) og tidspunkt for filoprettelse (Btime) til et bestemt tidspunkt brug:

# 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 opdateres tilsyneladende også automatisk tidspunktet for den sidste statusændring (ctime) til den aktuelle systemtid!

Hvis du kun vil ændre tidspunktet for oprettelse / fødsel (Btime) til et givet tidspunkt, skal du bruge (som pr udvalgt af 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 kun at ændre tidspunktet for den sidste statusændring (ctime) til nuværende systemtid brug 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 

hvor username er ejeren af filen (som rapporteret af stat eller ls -l). Dette ændrer ikke ejerskabet af filen, men får adgang til filens inode og registrerer dette som et tidspunkt for sidste statusændring. Desværre er det ikke muligt at specificere tiden eksplicit her, bortset fra ved at ændre computerens tid …

For at kunne ændre de fire tidsstempler uafhængigt kan man bruge (i dette rækkefølge for de sidste 3):

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

(Selvfølgelig er det muligvis ikke en risikofri handling at nulstille systemdatoen, du er blevet advaret.)

Kommentarer

  • +1 Tak for dette super detaljerede svar. Dette løste alle mine problemer.
  • Nogle gange ender jeg med fotos, der har forkerte datoer, fordi min GoPro nulstiller sig selv. Jeg overfører disse fotos til min Mac og retter datoen i henhold til disse instruktioner, men når jeg overfører disse fotos til min iPhone, er datoen stadig forkert. Den eneste måde, jeg ‘ har fundet at rette op på, er med en iOS EXIF-editor. Er der endnu en skjult datoattribut et eller andet sted?
  • @Bowen: De datoer, du henviser til på et foto, er en del af dataene i selve fotofilformatet. Oprettelsesdatoen, ændringsdatoen osv. For de ovennævnte filer er dem, der administreres af dit operativsystems filsystem, de vedligeholdes og opdateres separat til dataene i filen.

Svar

Kommandolinjen touch kommandoen fungerer i Lion, men du har brug for en lille baggrund om, hvordan du brug det.

For det første skal du indtaste det, det er ikke et hjælpeprogram, der fungerer grafisk i et vindue. Stedet du skriver det er en app kaldet Terminal . Du kan finde dette i mappen Hjælpeprogrammer eller bruge Spotlight-søgning til at finde det.

Når du starter det, får du et kommandolinjevindue, hvor du kan skrive kommandoer. Bare fordi du skriver ikke ” Det betyder ikke, at det har noget at gøre med kodning, men for en ny til “gammeldags” OS-kommandoer kan det se lidt skræmmende ud.

Så kommandoen hedder touch , og efter kommandoen kan du videregive forskellige parametre, den eneste krævede er filnavnet. Hvis du skriver følgende, indstilles den sidst ændrede dato for filen til det aktuelle tidspunkt:

touch filename 

Du skal selvfølgelig muligvis finde filen først, hvilket kan kræve yderligere kommandoer for at komme til det. kommandoen cd eller Skift mappe hjælper her:

cd ~/Desktop/files/PDFs touch filename 

Eller du kan blot tilføje den fulde sti til filen som en del af kommandoen:

touch ~/Desktop/files/PDFs/filename 

Mere avanceret brug af berøringskommandoen giver dig mulighed for at specificere det tidspunkt, du vil indstille, i stedet for at bruge tidspunktet ved udførelse, indstil adgang i stedet for ændringstider osv. Dette er, hvad parametre som -t og andre gør. Nogle indstiller tiden til at være tidspunktet for en anden fil, andre indstiller den til at gå tilbage eller videresendes i tid med X-beløb ( se her for flere detaljer) fx:

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

Følgende er fra denne side , som også er nyttig reference og et godt eksempel med nogle tip til dem, der er ubehagelige med filplaceringer på kommandolinjen

Bemærk, at dette kun ændrer både den ændrede dato og den oprettede dato, hvis din fil blev oprettet efter dato, du indtaster. Dette skyldes, at en fil ikke kan ændres, før den er oprettet. Hvis den oprettes inden den dato, du har angivet, ændres kun den ændrede dato.

Hvordan ændrer du den oprettede datoattribut for en fil?

  1. Åbn Terminal-applikationen (/Applications/Utilities/Terminal.app), eller brug iTerm, hvis du foretrækker det.

  2. Type dette i Terminal (uden at trykke enter / return) indsætter datoen i formatet YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Åbn et Finder-vindue, og find den fil, du vil ændre, og træk og slip den i Terminal-vinduet, den indsætter derefter filplaceringen ved hjælp af kommandolinjeterminologi. Her er et eksempel på, hvad der skal indtastes i terminalen på dette tidspunkt:

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

    201212211111 i eksemplet ovenfor repræsenterer “21. december 2012 11:11

Kommentarer

  • Men touch ændrer den ændrede dato, ikke oprettelsesdatoen for filen.
  • Det kan gøre begge dele. Afhænger af parametrene.
  • Brug af touch med de parametre, du har angivet ovenfor, ændrede ændringsdatoen, men ikke oprettelsesdatoer for min testfil.
  • @Daniel Du har sandsynligvis fået dit svar, men for fuldstændighedens skyld touch gør ændre oprettelsesdatoen afhængigt af argumenterne. Hvis du angiver en ændringsdato, der ligger før filen ‘ oprettelsesdato, skiftes oprettelsesdatoen automatisk til den nye ændringsdatoværdi, da en fil ikke kan ændres, før den oprettes .
  • Jeg har lige prøvet dette på Sierra og berører bestemt ændrer ikke creation datoen. Jeg var i stand til at ændre access og modified datoer til en ” dato tidligere “, men det ændrede ikke oprettelsesdatoen. Kontroller mandsiden for berøring, den nævner ikke oprettelsesdatoen. Filsystem: Mac OS Extended (Journaleret, Krypteret). Brug af SetFile -d "$(GetFileInfo -m test.txt)" file.txt fungerede perfekt.

Svar

Stortips her , især den sidste (fra Lauri Ranta, svarede 21. august kl. 15:21). Perfekt!

Jeg bruger nu en simpel Automator-arbejdsgang til batchændring af flere filer:

  1. Hent valgte Finder-genstande
  2. Kør Shell Script, “Pass input : som argumenter “

Shell-scriptet er:

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

Dette fungerer som en charme.

Svar

Den nemmeste måde, jeg fandt, var at oprette en ny mappe, kopiere alle undermapper i den gråtonede mappe ind i den nye mappe, og voila, den nye mappe er ikke nedtonet. Du kan endda gøre dette i søgeren.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *