GNU/Linux >> Linux Esercitazione >  >> Linux

Copiare i file modificati dopo una data specifica utilizzando gli interruttori Cp?

Quando eseguo il comando find . -mtime -60 Ricevo l'elenco dei file modificati negli ultimi 60 giorni.

Quindi, quando eseguo find . -mtime -60 -exec cp {} /tmp/1 \; Posso copiare questi file in una nuova directory per l'elaborazione

Tuttavia, se voglio preservare i timestamp, non sono in grado di copiare solo i file necessari quando eseguo find . -mtime -60 -exec cp -LR --preserve=timestamps {} /tmp/2 \;

Quello che succede è che TUTTI i file nella directory di origine vengono copiati anziché solo i file di cui ho bisogno.

Qualche soluzione qui?

Risposta accettata:

Quello che sta succedendo qui è che quando usi il -R opzione per cp e fornisce una directory come argomento, copia tutto in quella directory. Inoltre, ciò non conserverà la struttura delle directory poiché tutti i file nelle directory inferiori verranno copiati direttamente in /tmp/2 . Questo potrebbe essere quello che vuoi (vedi la risposta di X Tian per come farlo in questo modo), ma fai attenzione se qualche file ha lo stesso nome, uno sovrascriverà l'altro alla destinazione.

Per preservare la struttura della directory, puoi usare cpio :

find . -mtime -60 -print0 | cpio -0mdp /tmp/2

Se il -0 (o equivalente) l'opzione non è disponibile, puoi farlo, ma fai attenzione che nessuno dei tuoi nomi di file contiene una nuova riga:

find . -mtime -2 | cpio -mdp /tmp/2

cpio dovrebbe anche supportare il -L opzione, anche se fai attenzione perché in alcuni casi può causare un ciclo infinito.


Linux
  1. Come caricare o scaricare file/directory utilizzando sFTP in Linux

  2. Ottenere tutti i file che sono stati modificati in una data specifica?

  3. Copiare i primi N file in una directory diversa?

  4. Bind montare un utente SFTP dopo aver usato chroot

  5. Come copiare le directory in modo ricorsivo utilizzando rsync escludendo file specifici

Come rimuovere directory e file utilizzando Linux

Come copiare file e directory in Linux

Come eseguire il tar di tipi di file specifici (estensioni) in una directory

Come copiare file con estensione di file specifica in modo ricorsivo

Come copiare file in Linux usando il comando CP

Come ripristinare il backup di file/directory specifici utilizzando JetBackup 5?