Como copiar um arquivo para vários diretórios no Linux

3 de março de 2021 Off Por sudoroot

Como um usuário Linux, você deve estar bem familiarizado com o comando cp do Linux. Que é usado para copiar arquivos de um diretório para outro diretório.

Este tutorial explicará como copiar um arquivo para vários diretórios em um único comando.

Por padrão, podemos copiar um arquivo para um único diretório de destino em um comando. Por exemplo, copie um arquivo tecadmin.txt do diretório inicial para dois diretórios diferentes, use comandos como:

cp -v ~/tecadmin.txt  /backup/dir1/ 
cp -v ~/tecadmin.txt  /backup/dir2/ 

Agora, use o seguinte comando para copiar o mesmo arquivo para ambos os diretórios de destino em um único comando. Aqui usamos o comando echo seguido pelos nomes do diretório de destino. Em seguida, canalize os resultados para os comandos xargs, que pegarão os nomes dos diretórios como entrada e os passarão para o comando cp.

echo /backup/dir1/ /backup/dir2/ | xargs -n 1 cp -v ~/tecadmin.txt 

Em seguida, verifique se o arquivo de origem foi copiado para os dois diretórios de destino. Basta usar o comando ls para listar o arquivo em ambos os locais.

ls -l /backup/dir1/tecadmin.txt 
ls -l /backup/dir2/tecadmin.txt 

Você verá que o mesmo arquivo é copiado para ambos os destinos em um único comando.

Ao copiar o arquivo para 2-3 diretórios, você pode fazer isso facilmente com vários comandos. Mas pense, se você tiver que copiar isso para um grande número de diretórios de uma vez. Por exemplo, eu tenho um servidor WHM / cPanel com grande número de contas e quero colocar um arquivo para cada diretório public_html de contas. Podemos fazer isso em um único comando como:

echo /home/*/public_html/ | xargs -n 1 cp -v ~/tecadmin.txt 

[resultado]
'/root/tecadmin.txt' -> '/home/user1/public_html/tecadmin.txt'
'/root/tecadmin.txt' -> '/home/rahul/public_html/tecadmin.txt'

Espero que este tutorial ajude você a entender como copiar o arquivo para vários diretórios em um único comando.