Renomeia todos os arquivos com a mesma extensão e qualquer nome

1

Eu preciso renomear todos os arquivos com extensão .js , mas os nomes dos arquivos podem variar, por exemplo:

rootDirectory
--firstDirectory
----first.js
--secondFileDirectory
----second.js
--thirdDirectory
----third.js

Precisa ser renomeado para

rootDirectory
--firstDirectory
----newName.js
--secondFileDirectory
----newName.js
--thirdDirectory
----newName.js

Existe uma maneira de fazer isso?

Estou usando o Ubuntu 14.04

    
por snowfinch27 19.08.2016 / 16:15

2 respostas

4

O Ububtu 14 tem uma versão de find que tem a opção -execdir , então isso se torna relativamente simples:

find . -name '*.js' -execdir mv -i {} newName.js \;

Por exemplo, eu tenho essa árvore:

./A
./A/first.js
./B
./B/second.js

Eu corro o comando

$ find . -name '*.js' -execdir mv -i {} newName.js \;

A árvore resultante:

./A
./A/newName.js
./B
./B/newName.js
    
por 19.08.2016 / 16:24
0

Com base em Perl rename , assume pwd como rootDirectory:

rename 's|(.*/).*\.js|$1newName.js|' */*

ou

rename 's|.*/\K.*\.js|newName.js|' */*
  • use rename -n se quiser verificar como a renomeação ocorrerá
por 19.08.2016 / 17:00

Tags