GNU/Linux >> Tutoriales Linux >  >> Linux

Cambiar el nombre recursivamente de los archivos (cambiar la extensión) en Linux

Lo descubrí

find . -name "*.andnav" -exec rename -v 's/\.andnav$/\.tile/i' {} \;
./0/0.png.andnav renamed as ./0/0.png.tile
./0/1.png.andnav renamed as ./0/1.png.tile
./1/0.png.andnav renamed as ./1/0.png.tile
./1/1.png.andnav renamed as ./1/1.png.tile

por supuesto, elimine la -v cuando realmente lo haga, o perderá tiempo mostrando todos los archivos


Con zsh:

autoload zmv
zmv -n '(**/)(*).andnav' '$1$2.tile'

Elimina el -n para realizar realmente el cambio de nombre.


Algo como:

find . -name '*.andnav' -exec sh -c 'mv "$0" "${0%.andnav}.tile"' {} \;

Explicación

Lo anterior comienza a recorrer el árbol de directorios comenzando en el directorio de trabajo actual (. ). Cada vez que un nombre de archivo coincide con el patrón *.andnav (por ejemplo, foo.andnav ) se ejecuta el siguiente comando:

sh -c 'mv "$0" "${0%.andnav}.tile"' foo.andnav

Donde $0 es foo.andnav y ${0%.andnav}.tile reemplaza el .andnav sufijo con .tile así que básicamente:

mv foo.andnav foo.tile

Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. Comando de cambio de nombre de Linux

  3. Cómo cambiar o renombrar un punto de montaje en Linux

  4. Conteo recursivo de archivos en un directorio de Linux

  5. ¿Cómo cambiar el nombre de varios archivos de una extensión a otra en Linux/Unix?

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

8 métodos para cambiar el nombre de varios archivos a la vez en Linux

Cómo eliminar archivos con extensión específica en Linux

Cómo listar archivos recursivamente en Linux

Extensión de cambio de nombre de varios archivos de Linux