Quando lavori su sistemi Linux e Unix, copiare file e directory è una delle attività più comuni che esegui quotidianamente.
cp è un'utilità da riga di comando per copiare file e directory su sistemi Unix e Linux.
In questo articolo spiegheremo come usare il cp comando.
Come usare cp comando #
La sintassi generale per cp il comando è il seguente:
cp [OPTIONS] SOURCE... DESTINATION
La SOURCE può contenere uno o più file o directory come argomenti e la DESTINATION l'argomento può essere un singolo file o directory.
- Quando il
SOURCEeDESTINATIONgli argomenti sono entrambi i file, ilcpcomando copia il primo file nel secondo. Se il file non esiste, il comando lo crea. - Quando il
SOURCEha più file o directory come argomenti, ilDESTINATIONl'argomento deve essere una directory. In questa situazione, ilSOURCEi file e le directory vengono spostati nellaDESTINATIONdirectory. - Quando il
SOURCEeDESTINATIONgli argomenti sono entrambe le directory, ilcpcomando copia la prima directory nella seconda.
Per copiare file e directory, devi disporre almeno dei permessi di lettura sul file di origine e di quelli di scrittura sulla directory di destinazione. In caso contrario, viene visualizzato un errore di autorizzazione negata.
Copiare file con il comando cp #
Lo scenario più semplice dell'utilizzo di cp consiste nel copiare un file nella directory di lavoro corrente. Ad esempio, per copiare un file denominato file.txt a file_backup.txt , esegui il seguente comando:
cp file file_backup oppure:
cp file{,_backup} Per copiare un file in un'altra directory, specificare il percorso assoluto o relativo della directory di destinazione.
Quando come destinazione viene specificato solo il nome della directory, il file copiato ha lo stesso nome del file originale.
Nell'esempio seguente, stiamo copiando il file file.txt al /backup directory:
cp file.txt /backup
Se si desidera copiare il file con un nome diverso, è necessario specificare il nome file desiderato. Il comando seguente copierà il file nella directory specificata come new_file.txt .
cp file.txt /backup/new_file.txt
Per impostazione predefinita, se il file di destinazione esiste, viene sovrascritto. Il -n l'opzione dice a cp per non sovrascrivere un file esistente.
Per forzare cp per richiedere conferma, utilizzare -i opzione.
cp -i file.txt file_backup.txt
Se vuoi copiare il file solo se è più nuovo della destinazione, invoca il comando con -u opzione:
cp -u file.txt file_backup.txt
Quando si copia un file, il nuovo file è 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 , che dice a cp per stampare un output dettagliato:
cp -v file.txt file_backup.txt 'file.txt' -> 'file_backup.txt'
Copiare le directory con il comando cp #
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 sopra crea la directory di destinazione e copia ricorsivamente tutti i file e le sottodirectory dall'origine alla directory di destinazione.
Se la directory di destinazione esiste già, la directory di origine stessa e il suo contenuto vengono copiati all'interno della directory di destinazione.
Per copiare solo i file e le sottodirectory ma non la directory di origine, usa il -T opzione:
cp -RT Pictures Pictures_backup
Un altro modo per copiare solo il contenuto della directory ma non la directory stessa è utilizzare il carattere jolly (* ). Lo svantaggio del comando seguente è che non copia i file e le directory nascosti (quelli che iniziano con un punto . ):
cp -RT Pictures/* Pictures_backup/
Tutte le opzioni che abbiamo utilizzato nella sezione precedente per la copia dei file possono essere utilizzate anche durante la copia delle directory. La differenza principale è che quando copi le directory, devi sempre usare il -R opzione.
Copia più file e directory #
Per copiare più file e directory contemporaneamente, specificarne i nomi e utilizzare la directory di destinazione come ultimo argomento:
cp file.txt dir file1.txt dir1 Quando si copiano più file, la destinazione deve essere una directory.
Conclusione #
Copia di file e directory con il cp il comando è un compito semplice. Per ulteriori informazioni sul cp disponibile opzioni, digita man cp nel tuo terminale.
Per copiare i file in rete, usa rsync e scp utilità.
Se hai domande o feedback, sentiti libero di lasciare un commento.