Finché sei il proprietario del file (o root), puoi cambiare il tempo di modifica di un file usando il touch
comando:
touch filename
Per impostazione predefinita, questo imposterà l'ora di modifica del file sull'ora corrente, ma ci sono un numero di flag, come il -d
flag per scegliere una data particolare. Ad esempio, per impostare un file come modificato due ore prima del presente, è possibile utilizzare quanto segue:
touch -d "2 hours ago" filename
Se si desidera modificare il file in relazione al tempo di modifica esistente, è necessario fare quanto segue:
touch -d "$(date -R -r filename) - 2 hours" filename
Se si desidera modificare un numero elevato di file, è possibile utilizzare quanto segue:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
Puoi modificare gli argomenti in find
per selezionare solo i file che ti interessano. Se desideri aggiornare solo i tempi di modifica dei file rispetto a quelli attuali, puoi semplificare questo per:
find DIRECTORY -exec touch -d "2 hours ago" {} +
Questo modulo non è possibile con la versione relativa del tempo del file perché utilizza la shell per formare gli argomenti touch
.
Per quanto riguarda il tempo di creazione, la maggior parte dei file system Linux non tiene traccia di questo valore. È ctime
associato un file, ma tiene traccia dell'ultima modifica dei metadati del file. Se il file non ha mai le autorizzazioni modificate, potrebbe accadere che mantenga il tempo di creazione, ma questa è una coincidenza. La modifica esplicita del tempo di modifica del file conta come una modifica dei metadati, quindi avrà anche l'effetto collaterale di aggiornare il file ctime
.
touch -d "2 hours ago" /path/*.txt
ad esempio.