
Tenho um diretório cheio de nomes de arquivos que precisam ser alterados. 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 e renomear os arquivos em um diretório?
Responder1
Você pode usar isso para gerar uma lista de mv
comandos:
paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'
Se parecer bom, 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}' )