💾 Archived View for lord.re › posts › 122-zsh-zmv › index.gmi captured on 2023-03-20 at 18:38:41. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-06-03)
➡️ Next capture (2024-08-18)
-=-=-=-=-=-=-
-------------------------------------------------
[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 *<kbd>mv</kbd> qui permet de mov*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) :
<figure>
| Original | ▶ | Renommé |
|:-:|:-:|:-:|
|XXX-fichier1.jpg| â–¶ |YYY-fichier1.jpg|
|XXX-fichier2.jpg| â–¶ |YYY-fichier2.jpg|
|XXX-fichier3.jpg| â–¶ |YYY-fichier3.jpg|
<figcaption><h4>zmv 'XXX(\*)' 'YYY$1'</h4></figcaption>
</figure>
<p>Â </p>
Tout simplement.
Pour être safe, on peut rajouter *<kbd>-n</kbd>* qui affichera les modifs devant être effectuées sans les faire.
Et sinon il y a le mode interactif avec *<kbd>-i</kbd>* qui nécessitera que vous validiez chacune des modifs.
Bien entendu il y a d'autres options qui sont
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 : *<kbd>zmv ' ' '$f:gs/ /_'</kbd>* pour remplacer les espaces par des <abbr title="ça → _">underscores</abbr>.
Bon j'arrive jamais Ă m'en rappeler, hein, mais au moins je sais oĂą le retrouver.
PS : Pour pouvoir l'utiliser il faut ajouter *<kbd>autoload -U zmv</kbd> dans votre ~/.zshrc*.
------------------------------------
------------------------------------
[26/08/2018] [cli shell]
------------------------------------