Algo como isso deve funcionar:
while IFS= read -r dir
do
cp -f "$dir"/* target
done < list
em que list
é a lista de diretórios
e target
é o diretório para o qual você deseja copiar os arquivos.
Os arquivos nos diretórios que aparecem mais tarde na lista
irá sobrescrever arquivos nos diretórios que aparecem anteriormente na lista -
cp -f
especifica a opção "sobrescrever força" para o programa de cópia.
Isso pressupõe:
- Nomes de diretório não contêm novas linhas. (Você não conseguiria listá-los em um arquivo de texto simples, se o fizesse.)
- O arquivo de lista não contém citações.
- Cada diretório tem apenas arquivos (simples), não subdiretórios ou coisas especiais.
- Nenhum nome de arquivo começa com
.
.