Estou assumindo um ambiente semelhante ao Unix, então escreverei isso no script bash, mas o conceito é mais ou menos o mesmo em linguagens de script semelhantes ...
Execute este script no diretório em que os arquivos na lista de arquivos estão relacionados ...
#!/bin/sh
# (naive) File migration script
IFS=$'\n'
destination_path = "/path/to/destination/here/"
for file in 'cat filelist.txt'
do
cp -v --parents $file $destination_path
done
O que isso faz é que você está preservando a estrutura do diretório pai de origem ao copiar para o destino especificado. O rsync é ótimo para fazer backup de arquivos inteiros que você atualiza regularmente, pois é para isso que o algoritmo é ajustado. Mas, para operações mais simples, os comandos básicos do Unix agrupados em um script simples são mais que adequados. Observe que isso também define a variável IFS
bash que normalmente é composta de <space><tab><newline>
, embora a configuração provavelmente não seja preservada na saída do script.