💾 Archived View for lord.re › posts › 122-zsh-zmv › index.gmi captured on 2024-08-18 at 17:27:31. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-06-03)
-=-=-=-=-=-=-
-------------------------------------------------
[26/08/2018] - ~2mins - #cli #shell
-------------------------------------------------
Les petites gens utilisent un environnement de bureau mais en tant que rustre, je préfère largement l'austérité d'un sombre terminal.
Vous connaissez probablement la commande **mv** qui permet de **m**o**v**e un fichier.
C'est bien dans 90% des cas, mais il arrive des fois que vous ayez plein de fichiers Ă bouger avec juste une partie Ă renommer.
Et là c'est pas mal galère.
Vous allez pouvoir renommer les fichiers en masse avec quelques options sympatoches grâce à notre cher **ZMV** !
vous voulez changer un motif récurrent en début de nom par un autre (souvent je préfixe les fichiers) :
| Original | ▶ | Renommé |
|:-:|:-:|:-:|
|XXX-fichier1.jpg| â–¶ |YYY-fichier1.jpg|
|XXX-fichier2.jpg| â–¶ |YYY-fichier2.jpg|
|XXX-fichier3.jpg| â–¶ |YYY-fichier3.jpg|
<h4>zmv 'XXX(\*)' 'YYY$1'</figcaption>
<p>Â
Tout simplement.
Pour être safe, on peut rajouter **-n** qui affichera les modifs devant être effectuées sans les faire.
Et sinon il y a le mode interactif avec **-i** qui nécessitera que vous validiez chacune des modifs.
Bien entendu il y a d'autres options qui sont documentées [1] mais celles-là devraient vous suffire.
L'extra-bonus vient du support des *modifiers* et du *globbing* de ZSH mais ça c'est pour une prochaine fois.
Avec ces deux bidules supplémentaires, il est possible d'ajouter des critères pas mal du tout.
ex : **zmv '* *' '$f:gs/ /_'** pour remplacer les espaces par des underscores.
Bon j'arrive jamais Ă m'en rappeler, hein, mais au moins je sais oĂą le retrouver.
PS : Pour pouvoir l'utiliser il faut ajouter **autoload -U zmv** dans votre *~/.zshrc*.
[1] documentées (http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#index-zmv)
------------------------------------
------------------------------------
[26/08/2018] - #cli #shell
------------------------------------