GNU/Linux >> Linux Esercitazione >  >> Linux

Può scp copiare le directory in modo ricorsivo?

Soluzione 1:

Sì, usa -r :

scp -rp sourcedirectory [email protected]:/path
  • -r significa ricorsivo
  • -p conserva i tempi di modifica, i tempi di accesso e le modalità dal file originale.

Nota:questo crea il sourcedirectory all'interno di /path quindi i file saranno in /path/sourcedirectory

Soluzione 2:

Sebbene le risposte precedenti siano tecnicamente corrette, dovresti considerare anche l'utilizzo di rsync invece. rsync confronta i dati sui lati di invio e ricezione con un meccanismo diff in modo da non dover inviare nuovamente i dati che erano già stati inviati in precedenza.

Se hai intenzione di copiare qualcosa su una macchina remota più di una volta, usa rsync . In realtà, è utile usare rsync ogni volta perché ha più controlli per cose come copiare i permessi e la proprietà dei file ed escludere determinati file o directory. In generale:

$ rsync -av /local/dir/ server:/remote/dir/

sincronizzerà una directory locale con una directory remota. Se lo esegui una seconda volta e il contenuto della directory locale non è cambiato, nessun dato verrà trasferito - molto più efficiente che eseguire scp e copiando tutto ogni volta.

Inoltre, rsync ti consente di recuperare molto facilmente da trasferimenti interrotti, a differenza di scp .

Infine, le versioni moderne di rsync per impostazione predefinita viene eseguito su ssh, quindi se scp sta già funzionando, rsync dovrebbe praticamente essere un rimpiazzo immediato.

Soluzione 3:

Questo è ciò che il -r l'opzione è per. :)

Consulta la pagina man di scp per maggiori informazioni, se necessario.

Soluzione 4:

Opzione di copia ricorsiva '-r' (minuscolo)

scp -r

Che confondo con la normale opzione di copia ricorsiva locale '-R' (maiuscolo)

cp -R

Soluzione 5:

Il modo migliore è usare rsync su SSH

rsync -a -essh /source/ [email protected]:/dest/

rsync -a -essh [email protected]:/source/ /dest/

Le mie opzioni preferite sono -Pazvessh --delete :

  • -a :modalità archivio (include molte opzioni comuni predefinite, inclusa la conservazione dei collegamenti simbolici)
  • -z :comprime
  • -v :verbose :mostra i file
  • -P :mostra l'avanzamento come file completati/file rimanenti
  • -e ssh :esegue rsync nel protocollo ssh
  • --delete :cancella i file nella destinazione che non sono più nella sorgente

Linux
  1. Sincronizzare le directory in entrambe le direzioni con Rsync?

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

  3. Perché i file non possono essere manipolati da inode?

  4. Come posso escludere le directory da grep -R?

  5. Come posso copiare più file su scp in un comando?

Comando Rsync:20 utili esempi in Linux

Come copiare un file in più directory in Linux

Come escludere file e directory con Rsync

Copia i file in modo sicuro con il comando SCP

C'è un modo per continuare il processo di comando scp (copia sicura) rotto in Linux?

Come posso copiare in modo ricorsivo i file per estensione di file, preservando la struttura delle directory?