2013-03-03 9 views

risposta

14

avete alcune opzioni:

  • Utilizzare touch -t STAMP -m file se si desidera modificare il tempo
  • Usa cp --preserve=timestamps se stai copiando i file e si desidera conservare l'ora
  • Usa touch -r per impostare il tempo di un file "di riferimento"
+1

Questo mi dice come applicare un timbro a un determinato file, copiare un file e conservare i timestamp. Ma non risponde alla mia domanda iniziale su come copiare un timestamp da un file preesistente ad un altro file preesistente ... – user2015453

+1

@ user2015453 Ho modificato la mia risposta, mi sono ricordato di '-r' – cnicutar

0

Utilizzare touch; contiene diversi flag opzionali che consentono di impostare tali attributi.

0

Se si utilizza cp, utilizzare l'opzione -p per preimpostare volte mod mod. cp -p

1

È possibile ottenere il timestamp di file sorgente utilizzando stat in formato timestamp unix e poi propagarsi al file di destinazione utilizzando touch -d

src_file=/foo/bar 
dst_file=/bar/baz 

touch -d @$(stat -c "%Y" "$src_file") "$dst_file" 

NOTA: Questo potrebbe funzionare solo con i GNU coreutils che sostengono la unix timestamp utilizzando il prefisso @ con touch

1

Per comodità più tardi, ha messo la seguente riga nel file .bashrc:

cptimestamp() { 
    if [ -z $2 ] ; then 
    echo "usage: cptimestamp <sourcefile> <destfile>" 
    exit 
    fi 
    touch -d @$(stat -c "%Y" "$1") "$2" 
} 

Esegui "source ~/.bashrc" e sei pronto per partire. Se preferisci invece uno script, rimuovi la prima e l'ultima riga, quindi aggiungi "#!/Bin/sh"

Problemi correlati