Como alterar nomes de arquivos em um diretório para novos nomes contidos em um arquivo? [duplicado]

1

Eu tenho um diretório cheio de nomes de arquivos que precisam ser alterados. Eu não preciso simplesmente renomear um sufixo ou prefixo, mas sim renomear completamente os arquivos.

Eu tenho os novos nomes de arquivos em um arquivo chamado new_names.

Qual comando posso usar para ler os nomes contidos em new_names & renomear os arquivos em um diretório?

    
por freezing_up_north 15.12.2016 / 21:29

1 resposta

1

Você pode usar isso para gerar uma lista de comandos mv :

paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'

Se parece bom, então você pode executá-lo com:

cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )
    
por 15.12.2016 / 21:34

Tags