Aqui está um pequeno script de shell para você:
#!/bin/sh
while read line
do
DIR='dirname "$line"'
mkdir -p "/$DIR"
mv "$line" "/$DIR"
done <
Uso (supondo que você salvou o script como script.sh
e tornou executável com chmod +x script.sh
):
./script.sh input.txt output_directory
Ele moverá todos os arquivos listados em input.txt
para output_directory
, usando os caminhos originais, por exemplo, para que input.txt
tenha a seguinte lista:
test.txt
dir1/test.txt
Another Test/something_else.txt
Os arquivos serão movidos para:
output_directory/test.txt
output_directory/dir1/test.txt
output_directory/Another Test/something_else.txt
Eu fiz alguns testes antes de postar esta resposta, mas por favor certifique-se de tentar em uma amostra menor primeiro para confirmar que está funcionando como esperado!