Ricerca nel sito web

Come copiare un file in più directory in Linux


Mentre imparano Linux, è sempre la norma per i principianti continuare a digitare diversi comandi per eseguire un compito semplice. Ciò è comprensibile soprattutto quando ci si sta appena abituando all'uso del terminale.

Tuttavia, mentre non vedi l’ora di diventare un utente esperto di Linux, imparare quelli che definirei “comandi di scelta rapida” può ridurre significativamente la tendenza a perdere tempo.

In questo articolo spiegheremo un modo semplice, utilizzando un singolo comando per copiare un file in più directory in Linux.

In Linux il comando cp viene utilizzato per copiare file da una directory all'altra, la sintassi più semplice per utilizzarlo è la seguente:

cp [options….] source(s) destination

In alternativa, puoi anche utilizzare il comando advanced-copy, che mostra una barra di avanzamento durante la copia di file/cartelle di grandi dimensioni in Linux.

Considera i comandi seguenti, normalmente dovresti digitare due comandi diversi per copiare lo stesso file in due directory separate come segue:

cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/test
cp -v /home/aaronkilik/bin/sys_info.sh /home/aaronkilik/tmp

Supponendo che tu voglia copiare un particolare file in un massimo di cinque o più directory, questo significa che dovresti digitare cinque o più comandi cp?

Per eliminare questo problema, puoi utilizzare il comando echo, un comando pipe, xargs insieme al comando cp nella forma seguente:

echo /home/aaronkilik/test/ /home/aaronkilik/tmp | xargs -n 1 cp -v /home/aaronkilik/bin/sys_info.sh

Nel modulo sopra, i percorsi delle directory (dir1,dir2,dir3…..dirN) vengono ripetuti e inviati come input al comando xargs dove:

  1. -n 1 – dice a xargs di utilizzare al massimo un argomento per riga di comando e di inviarlo al comando cp.
  2. cp – utilizzato per copiare un file.
  3. -v – abilita la modalità dettagliata per mostrare i dettagli dell'operazione di copia.

Prova a leggere le pagine man dei comandi cp, echo e xargs per trovare informazioni utili e avanzate sull'utilizzo:

man cp
man echo
man xargs

Questo è tutto, puoi inviarci domande in relazione all’argomento o eventuali feedback tramite il modulo dei commenti qui sotto. Potresti anche voler leggere informazioni sul comando progress che aiuta a monitorare l'avanzamento di (cp, mv, dd, tar, ecc.) comandi attualmente in esecuzione in Linux.