Skinny site

... un modo di esprimersi

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri
Home Code Snippets Bash Comando cp

Comando cp

E-mail Stampa PDF
Valutazione attuale: / 0
ScarsoOttimo 

 

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

 

Ultimo aggiornamento Lunedì 01 Marzo 2010 14:49  

Google Analytics Tracking Module