GNU/Linux >> Linux Esercitazione >  >> Linux

Rinomina ricorsivamente i file (cambia estensione) in Linux

L'ho capito

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

ovviamente rimuovi -v quando lo fai effettivamente, o perderai tempo a visualizzare tutti i file


Con zsh:

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

Rimuovi -n per eseguire effettivamente la ridenominazione.


Qualcosa come:

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

Spiegazione

Quanto sopra inizia a percorrere l'albero delle directory a partire dalla directory di lavoro corrente (. ). Ogni volta che un nome file corrisponde al pattern *.andnav (ad es., foo.andnav ) viene eseguito il seguente comando:

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

Dove $0 è foo.andnav e ${0%.andnav}.tile sostituisce il .andnav suffisso con .tile quindi sostanzialmente:

mv foo.andnav foo.tile

Linux
  1. Come rinominare i file in Linux

  2. Comando di ridenominazione di Linux

  3. Come modificare o rinominare un punto di montaggio in Linux

  4. Conteggio ricorsivo dei file in una directory Linux

  5. Linux rinomina i file in maiuscolo

Come rinominare i file usando la riga di comando in Linux

Come rinominare uno o più file in Linux

8 metodi per rinominare più file contemporaneamente in Linux

Come rimuovere file con estensione specifica in Linux

Come elencare i file in modo ricorsivo in Linux

Linux Rinomina estensione file multipli