Não sei ao certo o que você quer dizer, esse é o comportamento padrão do comando de cópia ( cp
):
-
Copie muitos arquivos:
cp *txt *jpg destination_dir
Aqui estão alguns exemplos de operações mais complexas:
-
Copie todos os arquivos lidos de uma lista ( assumindo nomes de arquivos sãos, sem espaços ou caracteres estranhos ):
while read n; do cp $n destination_dir < file_list.txt
-
Como acima, mas funciona para nomes de arquivos com espaços ou caracteres estranhos:
while IFS= read -r n; do cp "$n" destination_dir < file_list.txt
-
Encontre todos os arquivos correspondentes a um padrão e copie-os:
find . -name "*data*" -exec cp {} destination_dir \;
-
Como acima, mas funciona com nomes de arquivos estranhos:
find . -print0 -name "*data*" | xargs -0 cp -t destination_dir \;
Eu ainda não entendo por que você gostaria de fazer isso, mas tudo bem. Para adicionar uma operação de cópia a ser executada após a atual, você pode fazer isso:
-
Crie uma lista dos arquivos que você deseja copiar. Como você começa com um arquivo, a lista contém apenas um nome de arquivo:
echo "fileA" > list.txt
-
Comece a copiar o arquivo lendo a lista (como antes, isso pressupõe nomes de arquivos sane , use o exemplo 2 da lista acima se o nome do arquivo puder conter espaços ou caracteres estranhos e não alfanuméricos):
while read n; do cp -v $n destination_dir < file_list.txt
-
Encontre o próximo arquivo que você deseja copiar e adicione-o à lista:
echo "fileB" >> list.txt
Contanto que você faça o passo 3 antes que a cópia termine, o próximo arquivo será copiado assim que o primeiro for concluído.
Eu simplesmente não entendo porque você simplesmente não lança muitos comandos cp
independentes. Você está complicando as coisas sem nenhuma razão, até onde eu sei.