copiando vários arquivos pelo nome de arquivo [duplicado]

1

Eu preciso copiar 150 arquivos de um diretório contendo 900 arquivos. Eu tenho o nome de todos os 150 arquivos em um arquivo de texto, list.txt . Como posso fazer isso no Linux?

    
por user143252 22.12.2016 / 14:55

4 respostas

2

Você pode tentar isso com rsync

rsync -av --files-from=list_of_filenames.txt SOURCE_DIR DESTINATION_DIR/

observe o espaço à direita no diretório de destino. rsync funciona a partir do diretório de trabalho atual, portanto, os caminhos de arquivo na sua lista de arquivos devem ser relativos a isso.

    
por 22.12.2016 / 15:04
1

Basta passar o arquivo por cima e copiar:

while read file; do cp "$file" /path/to/target/dir; done < list.txt
    
por 22.12.2016 / 15:01
0

Se a lista com seus caminhos de arquivo já tiver escapado, você poderá usar o seguinte comando:

cp -v $(<list.txt) dest/

Se a sua lista for muito longa, use uma while solution como sugerido em outra resposta.

    
por 22.12.2016 / 15:04
-1

Eu farei assim:

for f in 'cat filenames.txt'; do cp $f destination; done

Onde você substitui destination pelo destino dos seus arquivos. Muitas vezes eu insiro um echo após o do para verificar se meu comando está correto executando uma execução a seco.

    
por 22.12.2016 / 15:02

Tags