Voisitteko kertoa minulle, kuinka voin muuttaa tiedoston luomispäivää Lionissa. Ymmärrän, että touch-t-komento on olemassa, mutta se ei toimi lionissa. Pari ihmistä on maininnut toisen tavan, mutta luulen, että he ovat kirjoittaneet ratkaisun ”kooderin” kielellä pikemminkin kuin maallikkokielellä – pystyisikö joku vastaamaan siihen tavalla, jonka maallikko voi toteuttaa?

Paljon kiitoksia avusta.

Kommentit

  • ” -kooderi ” selitys, josta muut ihmiset ovat kirjoittaneet, on todennäköisesti viittaus ” touch ”. Sinä ’ d on avattava pääte, siirry kansioon, jossa tiedosto on, muokkaa sitten kosketuskomennolla fie ’ s -päivämäärää.
  • FWIW Olet oikeilla linjoilla ” touch-t ” kanssa, mutta h: n ja -: n välillä on välilyönti. Se ’ s ” kosketa -t ”

vastaus

touch -t muuttaa yleensä vain muokkaus- ja käyttöaikoja. Se muuttaa luomisaikaa vain, jos kohdeaika on ennen alkuperäistä luomisaikaa.

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 muuttuu aina luontiaika.

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

SetFile on osa komentorivin työkalupakettia, jonka voi ladata -kehittäjältä. .apple.com / downloads tai Xcoden asetuksista.

Kommentit

  • -m muutosajan muuttamiseksi.
  • Yosemite-sovelluksessa kosketus vaati minua käyttämään muotoa +%Y%m%d%H%M.%S (huomaa piste minuutin ja sekunnin välillä)
  • Kirjoitin funktion nimeltä CpCreationDate ryhmässä fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

vastaus

Mac OS X: ssä näyttää olevan neljä erilaista aikaleimaa tiedostoon. Nämä aikaleimat ei aina päivitetä toisistaan riippumatta, mutta voi olla joku yksilö ual-ohjaus vähän huolella ja touch, SetFile ja chown avulla (tai chmod). Näet tämän kokeilemalla ja luomalla uusi tiedosto komentokehotteesta #:

# 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 

ensimmäinen lueteltu päivämäärä on viimeinen käyttöaika (atime), toinen on viimeisen muokkauksen aika (mtime), kolmas on viimeinen tilan muutos ( ctime), neljäs on tiedoston luomisen aika (syntymä, Btime), katso man lstat.

Muuta käyttöaika (atime) tiettyyn aikaan:

# 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 

Muokkaa muokkausaikaa (mtime) ja tiedoston luomisen aika (Btime) tiettyyn aikaan käyttö:

# 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ä ilmeisesti myös päivittää viimeisen tilan muutoksen ajankohdan (ctime) nykyinen järjestelmän aika!

Jos haluat muokata vain luomisen / syntymän aikaa (Btime) tiettyyn aikaan, käytä (kuten pr muilta yllä mainituilta):

# 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 

Muuta vain viimeisen tilan muutoksen aikaa (ctime) nykyinen järjestelmän aikakäyttö esimerkiksi:

# 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 

missä username on tiedoston omistaja (kuten stat tai ls -l). Tämä ei muuta tiedoston omistajuutta, mutta käyttää tiedoston inodia ja tallentaa tämän viimeisen tilamuutoksen ajankohtana. Valitettavasti tässä ei ole mahdollista määrittää nimenomaisesti aikaa muuten kuin muuttamalla tietokoneen aikaa …

Yhteenvetona voidaan sanoa, että voidaksemme muuttaa neljää aikaleimaa itsenäisesti, voidaan käyttää (tässä järjestys viimeiselle 3: lle:

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [aseta järjestelmän päivämäärä] chown username <file> [palaa normaaliin järjestelmäpäivämäärään]

(Järjestelmän päivämäärän nollaaminen ei tietenkään ole riskitöntä toimintaa, sinua on varoitettu.)

Kommentit

  • +1 Kiitos tästä erittäin yksityiskohtaisesta vastauksesta. Tämä ratkaisi kaikki ongelmani.
  • Joskus pääsen valokuviin, joilla on väärät päivämäärät, koska GoPro nollaa itsensä. Siirrän nämä valokuvat Maciin ja korjaan päivämäärän näiden ohjeiden mukaan, mutta kun siirrän nämä valokuvat iPhoneen, päivämäärä on silti väärä. Ainoa tapa, jonka olen ’ löytänyt korjata, on iOS EXIF -editorilla. Onko jossain vielä toinen piilotettu päivämäärämääritelmä?
  • @Bowen: Päivämäärät, joihin viitat valokuvassa, ovat osa itse kuvatiedostomuodon tietoja. Edellä mainittujen tiedostojen luomispäivä, muokkauspäivä jne. Ovat niitä, joita käyttöjärjestelmän tiedostojärjestelmä hallinnoi, niitä ylläpidetään ja päivitetään erikseen tiedostossa oleviin tietoihin.

Vastaa

Komentorivi touch -komento toimii Lionissa, mutta tarvitset hieman taustaa käytä sitä.

Ensinnäkin sinun on kirjoitettava se sisään, se ei ole apuohjelma, joka toimii graafisesti ikkunassa. Paikka, johon kirjoitat, on sovellus nimeltä Terminal . Löydät tämän Utilities-kansiostasi tai voit löytää sen Spotlight-haulla.

Kun käynnistät sen, saat komentorivi-ikkunan, johon voit kirjoittaa komentoja. Vain siksi, että kirjoitat, ei ” Ei tarkoita, että sillä olisi mitään tekemistä koodauksen kanssa, mutta joku uusi ”vanhanaikaisille” käyttöjärjestelmäkomennoille voi näyttää hieman pelottavalta.

Joten komentoa kutsutaan nimellä kosketa , ja komennon jälkeen voit välittää useita parametreja, ainoa vaadittu parametri on tiedostonimi. Seuraavan kirjoittaminen asettaa tiedoston viimeisimmän muokatun päivämäärän nykyiseksi ajaksi:

touch filename 

Tiedosto on ehkä etsittävä ensin, mikä voi vaatii lisää komentoja päästäksesi siihen. cd tai Muuta hakemistoa -komento auttaa tässä:

cd ~/Desktop/files/PDFs touch filename 

Tai voit yksinkertaisesti lisätä koko polku tiedostoon komennon osana:

touch ~/Desktop/files/PDFs/filename 

Kosketuskomennon edistyneempi käyttö antaa sinun määrittää ajan, jonka haluat asettaa, eikä käyttää suorituksen aika, aseta käyttöoikeus muokkausaikojen sijaan jne. Tätä parametrit, kuten -t ja muut tekevät. Jotkut asettavat ajan olevan toisen tiedoston aika, toiset asettavat sen palaamaan eteenpäin tai eteenpäin ajassa X-määrällä ( katso lisätietoja tästä ) , esim .:

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

Seuraava on tältä sivulta , joka on myös hyödyllinen viite ja loistava esimerkki vinkkeineen niille, joille on epämukavaa käyttää tiedostojen sijaintia komentorivillä.

Huomaa, että tämä muuttaa sekä muokkauspäivämäärän että päivämäärämäärityksen attribuutteja vain, jos tiedosto luotiin antamasi päivämäärä. Tämä johtuu siitä, että tiedostoa ei voi muokata ennen kuin se on luotu. Jos se on luotu ennen määrittämäsi päivämäärää, vain muokattua päivämäärää muutetaan.

Kuinka muuttaa tiedoston luontipäivämääritettä?

  1. Avaa Terminal-sovellus (/Applications/Utilities/Terminal.app) tai jos haluat mieluummin käyttää iTermiä.

  2. Kirjoita tämä terminaaliin (ilman Enter / Return-näppäintä) lisäämällä päivämäärä muodossa YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Avaa Finder-ikkuna ja etsi muokattava tiedosto ja vedä ja pudota se Terminal-ikkunaan, ja se lisää sitten tiedoston sijainnin komentorivillä. Tässä on esimerkki siitä, mitä tässä vaiheessa tulisi kirjoittaa terminaaliin:

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

    201212211111 yllä olevassa esimerkissä edustaa “21. joulukuuta 2012 11:11 AM

Kommentit

  • Mutta touch muokkaa muokattua päivämäärää, ei tiedoston luomispäivämäärää.
  • Se voi tehdä molemmat. Riippuu parametreista.
  • touch -toiminnon käyttäminen yllä antamiesi parametrien kanssa muutti testitiedostoni muokkausta, mutta ei luomispäivämääriä.
  • @Daniel Todennäköisesti sait vastauksesi, mutta täydellisyyden vuoksi touch ei tehdä muokkaa luomispäivää argumenttien mukaan. Jos annat muokkauspäivämäärän, joka on ennen tiedoston ’ luomispäivää, luomispäivä muuttuu automaattisesti uudeksi muokkauspäivämääräksi, koska tiedostoa ei voi muokata ennen sen luomista .
  • Olen juuri kokeillut tätä Sierrassa ja koskettamalla ehdottomasti ei muuta creation -päivämäärää. Pystyin muuttamaan access ja modified päivämäärät ” päivämäärään menneisyydessä ”, mutta se ei muuttanut luomispäivää. Tarkista kosketussivu man-sivulta, siinä ei mainita luomispäivää. Tiedostojärjestelmä: Mac OS Extended (päivitetty, salattu). SetFile -d "$(GetFileInfo -m test.txt)" file.txt -toiminnon käyttö toimi täydellisesti.

Vastaa

Tässä on vihjeitä , erityisesti viimeinen (Lauri Rantalta, vastasi 21. elokuuta kello 15:21). Perfekt!

Käytän nyt yksinkertaista Automator-työnkulkua useiden tiedostojen eräajoon muuttamiseen:

  1. Hanki valitut Finder-kohteet
  2. Suorita Shell-komentosarja, ”Pass input” : argumentteina ”

Shell-komentosarja on:

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

Tämä toimii kuin viehätys.

Vastaus

Helpoin tapa, jonka löysin, oli luoda uusi kansio, kopioida kaikki harmaatun kansion alikansiot uuteen kansioon ja voila, uusi kansio ei ole harmaana. Voit tehdä tämän jopa etsinnässä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *