Copiare un file è assolutamente un compito molto facile da fare in ogni sistema operativo moderno, incluso Linux. Proprio come Windows e Mac, è possibile copiare un file facilmente dal comando GUI facendo clic destro sul file e scegliendo l’opzione di copia.
Tuttavia, cosa succede se si desidera copiare un file in più directory con un singolo comando. Puoi farlo solo usando la linea di comando.
Normalmente, useremmo il comando cp per copiare un file in Linux. Ma questo comando può essere usato solo per copiare un file in una specifica directory. Se pensi di copiare un file in più di una destinazione, devi cercare un’altra alternativa.
Fortunatamente, Linux è dotato di così tanti comandi. Quando esploriamo più a fondo un comando, possiamo fare molte cose con esso. In questo caso, parleremo di “echo”.
Questo comando è fondamentalmente usato per scrivere sullo schermo. Ma possiamo anche usare questo comando per copiare un file con opzioni aggiuntive. Prima di eseguire il comando, è meglio capire come funziona il comando.
Di seguito la sintassi del comando che stiamo per usare.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp file1
In questo caso, vogliamo alimentare l’output del comando echo come input al comando xargs. Per fare questo, usiamo il simbolo di pipe ( | ) che alimenta l’output di un comando come input per un altro. Il comando xargs eseguirà il comando cp tre volte, ogni volta aggiungendo il prossimo percorso della directory che gli è stato passato dal comando echo alla fine del comando cp. Ci sono tre argomenti passati a xargs, ma l’opzione -n 1 sul comando xargs gli dice di aggiungere solo uno di quegli argomenti alla volta al comando cp ogni volta che viene eseguito.
Hai capito?
Di seguito è riportato l’esempio del comando.
echo dir_1 dir_2 dir_3 | xargs -n 1 cp copythisfile.txt