Introduzione
Questa guida ti mostrerà come copiare file e directory in Linux eseguendo i comandi dalla riga di comando. Inoltre, i comandi elencati di seguito descrivono in dettaglio come creare backup a livello di sistema o filtrare e copiare solo file specifici.
Utilizzo del comando cp per copiare file e directory in Linux
Il cp
command è il metodo principale per copiare file e directory in Linux. Praticamente tutte le distribuzioni Linux possono utilizzare cp
. Il formato base del comando è:
cp [additional_option] source_file target_file
Ad esempio:
cp my_file.txt my_file2.txt
Questo comando Linux crea una copia di my_file.txt file e rinomina il nuovo file in mio_file2.txt .
Per impostazione predefinita, il cp
il comando viene eseguito nella stessa directory in cui stai lavorando. Tuttavia, lo stesso file non può esistere due volte nella stessa directory. Dovrai cambiare il nome del file di destinazione da copiare nella stessa posizione. Alcuni utenti aggiungeranno _old , alcuni aggiungeranno un numero e altri addirittura cambieranno l'estensione di tre lettere (ad es. .bak invece di .txt ).
Potresti non ricevere un avviso prima che Linux sovrascriva il tuo file:fai attenzione o vedi sotto per il –i
opzione.
Opzioni aggiuntive
Ulteriori opzioni possono essere utilizzate in combinazione con il cp
comando:
–v
prolisso :mostra lo stato di avanzamento di più file copiati–p
conserva :mantiene gli stessi attributi, come la data di creazione e i permessi dei file–f
forza :forza la copia eliminando prima un file esistente–i
interattivo :richiede conferma, altamente consigliato–R
ricorsivo :copia tutti i file e le sottocartelle in una directory–u
aggiorna :copia solo se l'origine è più recente della destinazione
Come copiare file in un'altra directory in Linux
Per copiare un file dalla directory in cui stai lavorando in una posizione diversa, usa il comando:
cp my_file.txt /new_directory
Non è necessario rinominare il file a meno che non ce ne sia già uno con lo stesso nome nella directory di destinazione.
Per specificare un percorso per il file di origine:
cp /etc/my_file.txt /new_directory
Ciò ti consente di copiare senza dover cambiare directory. Il cp
il comando creerà la /nuova_directory se non esiste.
Per rinominare e copiare un file in un percorso diverso:
cp my_file.txt /new_directory/my_file2.txt
Questa opzione è utile per creare backup di file di configurazione o per copiare dati su un dispositivo di archiviazione.
Copia più file da una directory all'altra in Linux
Potrebbe essere necessario copiare più di un file alla volta.
Elenca ogni file da copiare prima della directory di destinazione:
cp my_file.txt my_file2.txt my_file3.txt /new_directory
Questo esempio ha creato una copia di tutti e tre i file nella /new_directory cartella.
Utilizza un carattere jolly per specificare tutti i file che condividono una stringa di caratteri:
cp /pictures/*.jpg /new_directory
Questo troverebbe tutti i file con .jpg estensione in /immagini directory e copiali nella /nuova_directory cartella.
Per copiare un intera cartella e relative sottocartelle e file , usa il –R
opzione:
cp –R /documents /new_directory
–R
sta per ricorsivo, che significa "tutto in quella posizione". Questo copierebbe tutti i file, così come tutte le directory, nella /nuova_directory cartella.
Copia usando il comando rsync
Il comando rsync in Linux viene utilizzato per sincronizzare o trasferire dati tra due posizioni. L'utilizzo è simile a cp
, ma ci sono alcune differenze fondamentali da notare.
Per copiare un singolo file, inserisci quanto segue in un terminale:
rsync –a my_file.txt /new_directory/my_file_backup.txt
- Il
–a
opzione significa tutti ed è incluso inrsync
comandi:preserva le sottodirectory, i collegamenti simbolici e altri metadati. - Sostituisci il mio_file.txt file nella directory di lavoro.
- Sostituisci /nuova_directory/ con la destinazione.
- Utilizzo di my_file_backup.txt poiché la destinazione indica che il file verrà rinominato durante la copia.
Per copiare una directory con rsync, inserisci quanto segue:
rsync –a /etc/docker/ /home/backup/docker/
Questo copia il contenuto di /etc/docker/ directory in /home/backup/docker/ . Assicurati di mantenere le barre. L'omissione della barra nella directory di origine copierà il contenuto in una sottodirectory.
Per evitare che i file vengano copiati, consulta la nostra guida su come escludere file e directory nel trasferimento dati utilizzando il comando rsync.
Altre opzioni
Il ls
command è un pratico partner per cp
comando in Linux.
Per elencare il contenuto di una directory, digitare il comando:
ls /directory
L'esempio sopra mostra tutti i file in /directory . Utilizzare questo comando dopo la copia per verificare che i file siano stati copiati correttamente.
Per cambiare directory, usa cd
e il nome della directory. Ad esempio:
cd /other_directory
Il prompt dei comandi cambierà per mostrare che hai cambiato directory.