Il comando cp serve per copiare uno o più files o directory, la sua sintassi è:
cp [opzioni] origine destinazione
Per impostazione predefinita, cp scrive sempre sul filesystem pertanto è necessario prestare un minimo di attenzione al fine di non sovrascivere file importanti.
Quindi una delle precauzioni da prendere prima di iniziare una operazione di copia è quella di assicurarsi che la directory di destinazioni sia realmente presente, in caso contrario "cp" copierà il file con il nome che era stato indicato come cartella di destinazione.
Per esempio se scrivo:
cp /home/daniele/file.txt nuova_destinazione
se nuova_destinazione non esiste "cp" copierà nella posizione attuale del filesystem il file file.txt e lo ciamerà nuova_destinazione, inoltre proprio perché "cp" scrive sempre sul filesystem nel caso in cui nella posizione di destinazione vi fosse stato presente un file chiamato come la directory di destinazione indicata a "cp", lo avrebbe sovrascritto.
Per evitare di cancellare per errore file che potrebbero essere importanti è utile usare l'opzione "-i" (interactive)
cp -i /home/daniele/file.txt nuova_destinazione
In questo modo, nel caso la destinazione coincidesse con un file già presente sul filesystem, "cp" non sovrascriverà automaticamente quel file ma chiederà conferma sul dafarsi.
In abbinamento al comando cp è possibile utilizzare alcuni caratteri speciali che ne permettono un utilizzo ancora più efficacie. Il carattere speciale "." indica la directory corrente percui il seguente comando copierà il file nella directory dove attualmente mi trovo:
cp /home/daniele/file.txt .
Oltre al carattere "." è possibile utilizzare anche il carattere "*" per copiare più file per volta ad esempio:
cp /home/daniele/img*.jpg nuova_destinazione
Con questo comando verrano copiati tutti i files ".jpg" che iniziano con il nome "img"
Molto utili risultano essere anche le parentesi quadre "[]" ad esempio se scrivo questo comando:
cp /home/daniele/img[1-3].jpg nuova_destinazione
il comando copierà i files img1.jpg, img2.jpg, img3.jpg nella nuova_destinazione.
Nel caso si voglia visualizzare a video ogni passo fatto da "cp" basta aggiungere l'opzione "v" o "--verbose"
cp -v /home/daniele/img*.jpg nuova_destinazione
Nel caso si vogliano copiare intere directory con tutto il loro contenuto è necessario utilizzare l'opzione "R" o "--recursive"
cp -R /home/daniele nuova_destinazione
Anche se sarebbe meglio usare altri strumenti, con il comando cp è possibile fare copie di backup in altre directory. Attraverso l'opzione "a" o "--archive" è possibile accorpare più funzioni ossia "-dpR" cioè "--no-deference --preserve --recursive". L'opzione "a" garantisce che il comando cp non segua i link simbolici, preservi gli attributi dei files e segua in maniera ricorsiva le directory.
cp -a /home/daniele nuova_destinazione






