Como renomear uma parte do arquivo usando o comando find no diretório e sub-diretórios [duplicado]

1

Eu tenho um monte de arquivo de log em um diretório e é o subdiretório chamado dataupload_sales_.xxx.com.dat . Eu queria mudar todos os arquivos xxx.com part para yyy.com nos diretórios atual e secundário.

Espero que não seja um post duplicado, já que pesquisei no fórum e tentei poucas opções, mas nenhuma delas funcionou. algum post sugerido para usar renomear e é apenas renomear em arquivo único. onde eu tenho mais de 5000 subdiretórios no meu diretório e cada subdiretório tem mais de 100 .dat de arquivos.

eu também tentei

find ./ -name "xxx.com" -exec bash -c 'mv $0 $(echo "$0" | sed -r \"s|xxx.com|yyy.com|g\")' '{}' \;

mostra um erro de diretório inválido

    
por Himel 23.02.2016 / 10:33

1 resposta

2

Da pasta, você deseja alterar os nomes dos arquivos recursivamente:

find . -name '*.xxx.com.dat' -exec rename 's/xxx/yyy/' -- {} +
    
por EdiD 23.02.2016 / 10:47