GNU/Linux >> Linux Esercitazione >  >> Linux

Come copiare la directory su Linux

Copiare le directory su Linux è una parte importante di ogni routine dell'amministratore di sistema.

Se lavori con Linux da un po' di tempo, sai quanto sia importante mantenere le tue cartelle ben strutturate.

In alcuni casi, potresti dover copiare alcune directory sul tuo sistema per rinnovare la struttura del tuo filesystem principale.

In questo tutorial vedremo come puoi facilmente copiare directory e cartelle su Linux usando il comando cp.

Copia directory su Linux

Per copiare una directory su Linux, devi eseguire il comando "cp" con l'opzione "-R" per ricorsivo e specificare le directory di origine e destinazione da copiare.

$ cp -R <source_folder> <destination_folder>

Ad esempio, supponiamo di voler copiare la directory "/etc" in una cartella di backup denominata "/etc_backup".

La cartella "/etc_backup" si trova anche nella radice del tuo filesystem.

Per copiare la directory "/etc" in questa cartella di backup, eseguire il seguente comando

$ cp -R /etc /etc_backup

Eseguendo questo comando, la cartella “/etc” verrà copiata in “/etc_backup”, risultando nella seguente cartella.

Fantastico, hai copiato correttamente una cartella in un'altra cartella su Linux.

Ma cosa succede se si desidera copiare il contenuto della directory, in modo ricorsivo, utilizzando il comando cp?

Copia ricorsivamente il contenuto della directory su Linux

Per copiare il contenuto di una directory in modo ricorsivo, devi utilizzare il comando "cp" con l'opzione "-R" e specificare la directory di origine seguita da un carattere jolly.

$ cp -R <source_folder>/* <destination_folder>

Dato il nostro esempio precedente, supponiamo di voler copiare il contenuto della directory “/etc” nella cartella “/etc_backup”.

Per ottenere ciò, scriviamo il seguente comando

$ cp -R /etc/* /etc_backup

Quando elenchi il contenuto della cartella di backup, ti renderai conto che la cartella stessa non è stata copiata ma lo era il contenuto.

$ ls -l /etc_backup

Fantastico, hai copiato il contenuto della directory "/etc" direttamente in una cartella di backup!

Copia più directory con cp

Per copiare più directory su Linux, devi usare il comando "cp" ed elencare le diverse directory da copiare e la cartella di destinazione.

$ cp -R <source_folder_1> <source_folder_2> ... <source_folder_n>  <destination_folder>

Ad esempio, supponiamo di voler copiare la directory "/etc" e tutte le directory home che si trovano nella directory "/home".

Per raggiungere questo obiettivo, eseguiremo il seguente comando

$ cp -R /etc/* /home/* /backup_folder

Congratulazioni, hai copiato con successo più directory usando il comando cp su Linux!

Copia directory su host remoti

In alcuni casi, potresti voler copiare una directory per conservare un backup su un server di backup.

Inutile dire che il tuo server di backup è localmente in remoto:devi copiare la tua directory sulla rete.

Copia tramite rsync

Per copiare le directory in posizioni remote, devi utilizzare il comando rsync, specificare la cartella di origine e la destinazione remota in cui copiare.

Assicurati di includere l'opzione "-r" per "ricorsivo" e l'opzione "-a" per "tutti" (altrimenti i file non regolari verranno saltati)

$ rsync -ar <source_folder> <destination_user>@<destination_host>:<path>

Inoltre, se l'utilità "rsync" non è installata sul tuo server, assicurati di installarla utilizzando i privilegi sudo.

$ sudo apt-get install rsync

$ sudo yum install rsync

Ad esempio, supponiamo di dover copiare la cartella "/etc" su un server di backup situato in 192.168.178.35/24.

Vogliamo copiare la directory in “/etc_backup” del server remoto, con il nome utente “devconnected”.

Per raggiungere questo obiettivo, eseguiremo il seguente comando

$ rsync -ar /etc [email protected]:/etc_backup

Nota:abbiamo già scritto una guida sul trasferimento di file e cartelle in rete, se hai bisogno di una guida completa al riguardo.

Allo stesso modo, puoi scegliere di copiare il contenuto della directory "/etc/ piuttosto che la directory stessa aggiungendo un carattere jolly dopo la directory da copiare.

$ rsync -ar /etc/* [email protected]:/etc_backup/

Infine, se si desidera introdurre la data corrente durante l'esecuzione di un backup di directory, è possibile utilizzare la sostituzione del parametro Bash.

$ rsync -ar /etc/* [email protected]:/etc_backup/etc_$(date "+%F")

Nota :se stai cercando un tutorial sull'impostazione delle date su Linux, abbiamo una guida a riguardo sul sito web.

Copiare usando scp

Per copiare la directory su Linux in una posizione remota, puoi eseguire il comando "scp" con l'opzione "-r" per ricorsivo seguito dalla directory da copiare e dalla cartella di destinazione.

$ scp -r <source_folder> <destination_user>@<destination_host>:<path>

Ad esempio, supponiamo di voler copiare la directory “/etc” su un server di backup che si trova in 192.168.178.35 nella cartella “/etc_backup”.

Per raggiungere questo obiettivo, eseguiresti il ​​seguente comando

$ scp -r /etc [email protected]:/etc_backup/

Congratulazioni, hai copiato correttamente un'intera directory utilizzando il comando scp.

In modo molto simile al comando rsync, puoi scegliere di utilizzare la sostituzione del parametro Bash per copiare la tua directory in una directory personalizzata sul tuo server.

$ scp -r /etc [email protected]:/etc_backup/etc_$(date "+%F")

Conclusione

In questo tutorial, hai imparato come copiare facilmente le directory su Linux , indipendentemente dal fatto che tu scelga di farlo in locale o in remoto.

La maggior parte delle volte, la copia delle directory viene eseguita per avere backup delle cartelle critiche sul tuo sistema :ovvero /etc, /home o log di Linux.

Se sei interessato a Amministrazione di sistema Linux , abbiamo una sezione completa dedicata ad esso sul sito Web, quindi assicurati di dare un'occhiata!


Linux
  1. Come aggiornare un collegamento simbolico Linux

  2. Come rinominare una directory su Linux

  3. Come copiare una directory nella riga di comando di Linux [Suggerimento per principianti]

  4. Come gzippare una directory in Linux

  5. Come copiare il percorso della directory preservando il file in Linux?

Come eseguire tutti gli script in una directory in Linux

Come configurare SFTP in chroot in Linux

Come usare il comando cd in Linux

Come spostare una directory in Linux

Come copiare un gran numero di file in Linux

Come contare i file nella directory su Linux