Copie o arquivo, crie duplicatas no diretório diferente com uma lista predefinida de nomes de arquivos

0

Eu tenho um arquivo rock.mpg no diretório da pasta /folder1/folder2 . Eu preciso criar múltiplas (340) cópias duplicadas deste arquivo em um diretório diferente, digamos /folder1/folder2/folder3 , mas com diferentes nomes de arquivos.

Os nomes exclusivos para as 340 cópias duplicadas são aleatórios e também não seqüenciais. Eles já estão definidos em um arquivo de texto separado abc.txt que eu tenho.

Uma amostra de nomes de arquivos duplicados em abc.txt da seguinte forma

MS123.mpg
DW235.mpg
WQ6748.mpg
HDJ74.mpg
...
...

assim por diante

Isso pode ser feito com o shell script?

    
por Parsha 09.08.2015 / 12:44

2 respostas

1

Deve ser fácil com xargs :

xargs -a abc.txt -i cp /folder1/folder2/rock.mpg /folder1/folder2/folder3/{}
  • -a abc.txt diz xargs para ler abc.txt (em vez da entrada padrão como de costume)
  • -i informa xargs para substituir {} por uma linha de entrada

Teste com:

xargs -a abc.txt -i echo cp /folder1/folder2/rock.mpg /folder1/folder2/folder3/{}
    
por 09.08.2015 / 13:11
0

apenas com o BASH:

while read newname ; do
    cp old/dir/rock.mpg /new/dir/"$newname"
done < abc.txt

ou até mesmo em uma única linha:

while read newname ; do ; cp old/dir/rock.mpg /new/dir/"$newname" ; done < abc.txt

O mecanismo é ler cada linha de abc.txt como o variável newdir e depois copiar o arquivo antigo para o novo local com este novo nome.

    
por 10.08.2015 / 10:09