Se você quisesse usar a saída do seu comando para copiar o arquivo para cada diretório usando cp
, você sempre poderia canalizá-lo para xargs
:
printf "s%02i " $(seq 1 50) | xargs -n 1 cp test.txt
Não deve haver qualquer preocupação sobre a segurança da análise da saída, já que você conhece seu formato e conteúdo antes da mão - o risco de encontrar meta-caracteres e espaço nos nomes dos arquivos não é realmente um problema aqui.
Como alternativa, supondo que os diretórios já existam, você poderia tentar algo como:
find . -maxdepth 1 -type d -name 's[0-9][0-9]' -print0 | xargs -0 -I {} cp test.txt {}
ou sem pipe:
find . -maxdepth 1 -type d -name 's[0-9][0-9]' -exec cp test.txt {} \;
Os dois últimos comandos encontrarão quaisquer arquivos no diretório atual e cp
test.txt
para eles. A opção -maxdepth 1
evitará qualquer subdiretório que receber o arquivo também. Esteja avisado que 's[0-9][0-9]'
está correspondendo a s
seguido por quaisquer dois dígitos, o que significa que, se por algum motivo você tiver s99
no cwd
, ele também receberá uma cópia de test.txt
.