GNU/Linux >> Linux Esercitazione >  >> Linux

Come copiare file e directory in Linux

La copia di file e directory è una delle attività più comuni che esegui quando lavori sulla riga di comando. Ci sono diversi comandi per copiare i file in Linux, con cp e rsync essendo gli strumenti più utilizzati.

È pratica comune utilizzare il cp comando per copiare file e rsync per copiare le directory.

Per poter copiare file e directory, devi avere almeno i permessi di lettura sul file di origine e di scrittura sulla directory di destinazione.

Copiare file con cp Comando #

Sui sistemi operativi Linux e Unix, il cp comando viene utilizzato per copiare file e directory.

Il caso d'uso più semplice è copiare un file nella directory di lavoro corrente. Ad esempio, per copiare un file denominato file.txt in un file denominato file_backup.txt nella directory corrente, eseguiresti il ​​seguente comando:

cp file.txt file_backup.txt

Se il file di destinazione esiste, verrà sovrascritto. Per ricevere una richiesta di conferma prima di sovrascrivere i file, utilizzare -i opzione.

cp -i file.txt file_backup.txt

Per impostazione predefinita, quando si utilizza il cp comando per copiare un file, il nuovo file sarà di proprietà dell'utente che esegue il comando. Usa il -p opzione per preservare la modalità del file, la proprietà e i timestamp:

cp -p file.txt file_backup.txt

Un'altra opzione che può essere utile è -v . Quando si utilizza questa opzione, il comando stampa ciò che si sta facendo:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

Copia un file in una directory #

Per copiare un file in una directory, specificare il percorso assoluto o relativo della directory. Quando la directory di destinazione viene omessa, il file viene copiato nella directory corrente.

Nell'esempio seguente, stiamo copiando il file file.txt al /backup directory:

cp file.txt /backup

Quando si specifica solo il nome della directory come destinazione, il file copiato avrà lo stesso nome del file originale.

Se vuoi copiare il file con un nome diverso, devi specificare il nome del file desiderato:

cp file.txt /backup/new_file.txt

Il comando precedente copierà il file nella directory specificata come new_file.txt .

Copia più file #

Per copiare più file e directory contemporaneamente, specifica i nomi dei file e delle directory di origine seguiti dalla directory di destinazione come ultimo argomento:

cp file.txt dir file1.txt file2.txt dir1

Quando si copiano più file, la destinazione deve essere una directory.

Il cp Il comando consente anche di utilizzare la corrispondenza dei modelli. Ad esempio, per copiare tutti i .png file dalla directory corrente al /backup directory, useresti:

cp *.png /backup

Copiare directory con cp Comando #

Per copiare una directory, inclusi tutti i suoi file e sottodirectory, usa il -R o -r opzione. Nell'esempio seguente, stiamo copiando la directory Pictures a Pictures_backup :

cp -R Pictures Pictures_backup

Il comando precedente creerà la directory di destinazione e copierà ricorsivamente tutti i file e le sottodirectory dalla directory di origine alla directory di destinazione.

Se la directory di destinazione esiste già, la directory di origine stessa e il suo contenuto vengono copiati nella directory di destinazione. Per copiare solo i file e le sottodirectory ma non la directory di destinazione, usa il -T opzione:

cp -RT Pictures Pictures_backup

Le opzioni utilizzate durante la copia dei file possono essere utilizzate anche durante la copia delle directory. La differenza principale è che quando si copiano le directory, è necessario utilizzare il -R opzione.

Copiare file e directory con rsync Comando #

rsync è un'utilità da riga di comando veloce e versatile che sincronizza file e directory tra due posizioni. Può essere utilizzato per copiare file in posizioni locali e remote.

rsync include molte opzioni che controllano ogni aspetto del suo comportamento

L'opzione più utile è -a che copiano ricorsivamente directory, trasferiscono dispositivi speciali e bloccano e preservano collegamenti simbolici, tempi di modifica, gruppo, proprietà e autorizzazioni.

Per copiare un singolo file da una posizione a un'altra, eseguire il comando seguente:

rsync -a file.txt file_backup.txt

Se il file di destinazione esiste, rsync lo sovrascriverà.

Lo stesso comando può essere utilizzato per copiare una directory:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync minaccia le directory di origine che terminano con una barra finale / diversamente. Se aggiungi una barra finale alla directory di origine, il comando copierà solo il contenuto della directory di origine nella directory di destinazione. Quando la barra finale viene omessa, rsync copierà la directory di origine all'interno della directory di destinazione. L'opzione più sicura è sempre includere la barra finale / sia sulla destinazione che sulla sorgente.

Per ulteriori informazioni su rsync controlla i seguenti articoli:

  • Come utilizzare Rsync per il trasferimento e la sincronizzazione di dati locali e remoti
  • Come escludere file e directory con Rsync

Conclusione #

Ti abbiamo mostrato come copiare file e directory in sistemi basati su Linux e Unix, usando il cp e rsync utilità.

Se hai domande, lascia un commento qui sotto.


Linux
  1. Un modo semplice per nascondere file e directory in Linux

  2. Come eliminare file e directory in Linux dalla riga di comando

  3. Come trovare un file in Linux in tutte le directory in modo ricorsivo

  4. Come estrarre i file .gz e .tar.gz in Linux

  5. Come copiare / spostare file e directory in Linux con i comandi "cp" e "mv".

Come confrontare e unire file di testo su Linux

Come visualizzare e creare file e directory nascosti in Linux

Come rinominare file e directory in Linux

Come rimuovere file e directory su terminale Linux

Come copiare file e directory nel terminale Linux

Come copiare la directory su Linux