Come posso cambiare l'ora di creazione di tutti i file di una cartella all'ora corrente?


2

In una shell Linux, come posso cambiare l'ora di creazione di tutti i file di una cartella all'ora corrente?


2
I file non hanno un "tempo di creazione" ma hanno un "tempo di modifica". Per modificare il tempo di modifica di un file, utilizzare il touchcomando, ad es.$ touch file1 file2 file3
boehj

1
Queste risposte ti sono state utili @tomy?
Boehj,

@boehj Grazie per aver sottolineato che i file non hanno un tempo di creazione
Meredith,

Risposte:


4

Passare alla cartella in questione, diciamo, ~ / Documents / myfiles.

$ cd ~/Documents/myfiles

Quindi fa:

$ touch *

Questo cambierà il tempo di modifica ogni volta che hai eseguito quel comando.

Ovviamente puoi renderlo più specifico a seconda del tuo caso d'uso, ad es

$ touch *.doc

modificherà solo il tempo di modifica per i file con la stringa '.doc' nel loro nome.


3

In Linux, se vuoi fare qualcosa ricorsivamente nella directory o vuoi applicare alcune azioni sui file che soddisfano alcuni criteri , dovresti provare findexargs

Tocca tutti i file in ~ / Documents / myfiles (compresi i file nella sottodirectory)

find ~/Documents/myfiles -type f -print0 | xargs -0 touch

2
Senza xargs: find dir -type f -exec touch {} +(imposta ora i tempi di modifica / accesso / cambio di tutti i file in modo ricorsivo)
olibre

2

L'OP ha chiesto l' ora della creazione , ma le risposte di Ian Yang e boehj si basano sull'impostazione del comando touchche modifica i tempi di modifica , accesso e modifica sull'ora corrente.

Come ha detto boehj (nel suo commento) non c'è tempo di creazione di un file ... Questo è vero per la maggior parte dei filesystem, ma su alcuni filesystem moderni (come ext4 ) il tempo di creazione (o nascita ) di un file è memorizzato all'interno l' inode .

Pertanto possiamo dare una risposta più corretta scrupolosamente rispettando il titolo della domanda:

cp -a  your-folder tmp-folder
rm -rf your-folder
mv tmp-folder your-folder

Ciò cambierà l' ora di creazione ( ora di nascita ) nell'ora corrente. Ciò aggiorna anche il tempo di modifica ma mantiene invariati i tempi di modifica e accesso .

Per informazioni, il tempo di modifica è talvolta abbreviato come ctimee può essere confuso con il tempo di creazione ( crtimeo btime). In effetti, il tempo di modifica di un file è il tempo di modifica del suo inode corrispondente . Pertanto, i comandi modificano il inodecontenuto come chmodo chattrimpostano anche l' ora di modifica sull'ora corrente.


Per quanto ne so, la maggior parte se non tutti i filesystem Linux non fanno risparmiare tempo di creazione.
terdon,

Grazie @terdon per il tuo commento, ho aggiornato la mia risposta (il commento di modifica è "tempo di creazione disponibile su alcuni filesystem moderni solo come indicato da terdon" ). Saluti ;-)
olibre
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.