Come copiare ricorsivamente le directory con scp

Contenuti

Bash Shell

Un ostacolo comune quando si lavora con i file è l'applicazione ricorsiva delle operazioni o su tutte le sottodirectory dell'intera cartella. il scp L'utilità viene utilizzata per trasferire file e directory su server remoti e supporta operazioni ricorsive.

Esegui scp in modo ricorsivo

Sebbene a volte sia più veloce eseguire trasferimenti di grandi dimensioni su un singolo file noto come tarball, la maggior parte delle volte il sovraccarico del trasferimento di singoli file non ha importanza.

Copia ricorsivamente con scp È facile: basta usare il -r contrassegna contemporaneamente a qualsiasi altra cosa tu abbia aggiunto:

scp -r percorso locale utente@remoto:/percorso remoto

Nota che questo è esplicitamente minuscolo -r, a differenza di molti altri comandi che usano o richiedono -R.

Questo agirà come trascinare e rilasciare /remotepath/, copiando il contenuto di localpath/ al telecomando e inserendoli in /remotepath/localpath/.

e, Invece, voglio sincronizzare localpath/ e /remotepath/, dovrai trasferire la cartella nella cartella principale di /remotepath/, destino. Per questo caso, sarebbe /, la directory principale.

Questo seguirà anche i collegamenti simbolici nel percorso locale durante la risoluzione dei problemi dei file, ma non creerà necessariamente quegli stessi collegamenti sul server remoto. Come esempio, copia un nuovo file da e verso /etc/nginx/sites-enabled non lo posizionerà automaticamente in /etc/nginx/sites-available sul telecomando.

Usando invece rsync

Linux ha diversi strumenti per gestire questo lavoro, e uno dei migliori è rsync, che fa tutto scp può fare, ma ha molte più opzioni ed è molto più veloce da avviare. Inoltre non copia i file che non sono stati modificati, il che lo rende un ottimo strumento per “sincronizzare” continuamente due directory tra loro senza ritrasferire i dati inutilmente.

rsync funziona esattamente come scp, con alcune altre opzioni incluse per specificare le impostazioni:

rsync -a -essh ​​percorso locale/utente@remoto:/percorso remoto/

il -a bandiera specifica modalità file, che attiva contemporaneamente molte opzioni di uso comune. il -e ssh set di bandiere rsync trasferire tramite SSH.

IMPARENTATO: Come usare rsync per eseguire il backup dei dati in Linux

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.