androide

Come copiare file e directory in Linux

Linux - Gestione dei file dalla Shell - Primi Passi

Linux - Gestione dei file dalla Shell - Primi Passi

Sommario:

Anonim

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

È prassi comune utilizzare il comando cp durante la copia di file e il comando rsync durante la copia di directory.

Per poter copiare file e directory, è necessario disporre almeno delle autorizzazioni di lettura sul file di origine e delle autorizzazioni di scrittura sulla directory di destinazione.

Copia dei file con il comando cp

Sui sistemi operativi Linux e Unix, il comando cp 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 nel file denominato file_backup.txt nella directory corrente, è necessario eseguire il comando seguente:

cp file.txt file_backup.txt

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

cp -i file.txt file_backup.txt

Per impostazione predefinita, quando si utilizza il comando cp per copiare un file, il nuovo file sarà di proprietà dell'utente che esegue il comando. Utilizzare l'opzione -p per preservare la modalità 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 viene fatto:

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 alla directory. Se la directory di destinazione viene omessa, il file viene copiato nella directory corrente.

Nel seguente esempio stiamo copiando il file file.txt nella directory /backup :

cp file.txt /backup

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

cp file.txt /backup/new_file.txt

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

Copia più file

Per copiare più file e directory in una volta, specificare i nomi dei file e delle directory di origine seguiti con la 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 comando cp consente inoltre di utilizzare la corrispondenza dei motivi. Ad esempio, per copiare tutti i file .png dalla directory corrente alla directory /backup , utilizzare:

cp *.png /backup

Copia delle directory con il comando cp

Per copiare una directory, inclusi tutti i suoi file e le sue sottodirectory, usa l'opzione -R o -r . Nel seguente esempio stiamo copiando la directory Pictures in Pictures_backup :

cp -R Pictures Pictures_backup

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

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

cp -RT Pictures Pictures_backup

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

Copia di file e directory con il comando rsync

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

rsync include una serie di opzioni che controllano ogni aspetto del suo comportamento. L'opzione più utile è -a che copia ricorsivamente le directory, trasferisce dispositivi speciali e blocca, conserva collegamenti simbolici, tempi di modifica, gruppo, proprietà e permessi.

Per copiare un singolo file da uno all'altro, 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 dei sorgenti che terminano con una barra finale / diverso. Se si aggiunge una barra finale sulla directory di origine, il comando copierà solo i contenuti della directory di origine nella directory di destinazione. Quando la barra finale viene omessa, rsync copia la directory di origine all'interno della directory di destinazione. L'opzione più sicura è quella di includere sempre la barra finale / sia sulla destinazione che sulla fonte.

Per ulteriori informazioni su rsync consulta i seguenti articoli:

Conclusione

In questa guida, ti abbiamo mostrato come copiare file e directory in sistemi basati su Linux e Unix usando le utility cp e rsync .

terminale cs rsync