# Modifier liste fichiers

**URL:** <https://www.debian-fr.org/t/modifier-liste-fichiers/53846>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846 "2016-02-21T12:28:38Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/1 "2016-02-21T12:28:38Z")

</div>

Comment écrire la ligne de commande pour modifier les noms des fichiers contenus dans une liste ?  
Chaque fichier commence par les mêmes lettres mais est ensuite différent.  
mon EX :

# mv /var/lib/dpkg/info/apache2\*\*\*\*\*\* /var/lib/dpkg/info/trucapache2\*\*\*\*\*\*

chaque fin (\*\*\*\*\*\*) étant différente bien sûr mais je voudrais que la copie soit identique sauf le début 'truc"  
le premier :  
apache2-mpm-prefork.list  
devra être renommé :  
trucapache2-mpm-prefork.list  
et ainsi de suite  
Comme il y en a un wagon, je n’ai pas envie de tout recopier à la main

---

<div class="post-metadata">

**Author:** ![Arnaud](https://www.debian-fr.org/user_avatar/www.debian-fr.org/arnaud/32/4098_2.png) [@Arnaud](https://www.debian-fr.org/u/Arnaud)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/2 "2016-02-21T12:28:38Z")

</div>

Si j’ai bien compris la question :

```auto

```

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/3 "2016-02-21T12:28:38Z")

</div>

![:018](https://www.debian-fr.org/uploads/default/original/1X/35d75f143a06bf2f0d0242498020dfb195b53630.gif "non")

Erreur de syntaxe près du symbole inattendu « do »  
Ptet un histoire de parenthèses à placer ?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/4 "2016-02-21T12:28:39Z")

</div>

ou plus simplement

`cd /var/lib/dpkg/info/
for f in * ; do mv $f truc$f; done`  
mais un jour vous passerez à un shell puissant :

`alias mmv='noglob zmv -W'
mmv /var/lib/dpkg/info/* /var/lib/dpkg/info/truc*`

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/5 "2016-02-21T12:28:39Z")

</div>

Erreur de syntaxe près du symbole inattendu « do »  
Ptet un histoire de parenthèses à placer ?[/quote]  
Je ne reproduit pas ton erreur, par contre la boucle pose un problème parce qu’elle cherche à faire :

```auto

```

---

<div class="post-metadata">

**Author:** ![Arnaud](https://www.debian-fr.org/user_avatar/www.debian-fr.org/arnaud/32/4098_2.png) [@Arnaud](https://www.debian-fr.org/u/Arnaud)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/6 "2016-02-21T12:28:39Z")

</div>

[quote=«&nbsp;MisterFreez&nbsp;»][quote=«&nbsp;ricardo&nbsp;»]:018  
Erreur de syntaxe près du symbole inattendu « do »  
Ptet un histoire de parenthèses à placer ?[/quote][/quote]

MisterFreez et moi sommes sous zsh, c’en est peut-être la raison ?

> [@MisterFreez](#):
>
> Je ne reproduit pas ton erreur, par contre la boucle pose un problème

Oui, avec un cd ça va mieux ( le pire c’est que c’est bien ce que je fais en local ).

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/7 "2016-02-21T12:28:39Z")

</div>

```auto
for f in * ; do mv $f truc$f; done
```

![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

Plus chiant :  
pour faire la même chose mais dans différents dossiers de l’architecture. Les fichier commençant toujours par les mêmes lettres  
Je pense qu’il faudra faire un script avec find d’abord ?

@ Arnaud :  
certainement la raison.  
Merci.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/8 "2016-02-21T12:28:39Z")

</div>

Y m’énerve ![:013](https://www.debian-fr.org/uploads/default/original/1X/086709e9e4d48f0fa24e42243bbce857fc2be47f.gif "colere")  
Je fais le test avec des fichiers bidons dans ~/bidon  
Ça fonctionne parfaitement.  
Je fais la même chose dans /var/lib/dpkg/info  
voilà les bonnes données (juste à ajouter un ‹&nbsp;a&nbsp;› devant chaque fichier :

`for f in apache2* ; do mv $f a$f; done
`  
il me refuse avec la même erreur :

`bash: Erreur de syntaxe près du symbole inattendu « do »
`

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/9 "2016-02-21T12:28:39Z")

</div>

[quote=“arnaud\_k”][quote=“MisterFreez”][quote=“ricardo”]:018  
Erreur de syntaxe près du symbole inattendu « do »  
Ptet un histoire de parenthèses à placer ?[/quote][/quote]

MisterFreez et moi sommes sous zsh, c’en est peut-être la raison ?[/quote]  
Quand je test je le fait sous bash.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/10 "2016-02-21T12:28:39Z")

</div>

Je viens de reposter au dessus, Michel.  
Y veut pas.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/11 "2016-02-21T12:28:39Z")

</div>

[quote=“ricardo”]Plus chiant :  
pour faire la même chose mais dans différents dossiers de l’architecture. Les fichier commençant toujours par les mêmes lettres  
Je pense qu’il faudra faire un script avec find d’abord ?[/quote]  
Je ne vois pas très bien, tu veux ça :

`coucou/toto ***=> coucou/_toto***
hello/toto ***=> hello/_toto*** `

Ça va dépendre de la complexité de l’arborescence (si tes dossiers ne sont pas dans le même dossier). Si tes dossiers sont dans le même dossier tu peut faire ça :

`for fichier in */hehe* ; do
    mv "${fichier}" "${fichier%/*}/hoho${fichier##*/}"
done`

Ça c’est la version simple, si tu as plusieurs dossiers n’importe où alors :

`for fichier in {chemin_complet_1,chemin_complet_2}/hehe* ; do
    mv "${fichier}" "${fichier%/*}/hoho${fichier##*/}"
done`

Avec find c’est possible mais moins agréable je trouve.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/12 "2016-02-21T12:28:40Z")

</div>

[quote=“ricardo”]Je viens de reposter au dessus, Michel.  
Y veut pas.[/quote]  
J’ai vu et je ne comprends pas le man indique que la syntaxe c’est :

```auto

```

Essaie en allant à la ligne après le ;.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/13 "2016-02-21T12:28:40Z")

</div>

> [@](#):
>
> Essaie en allant à la ligne après le ;.

Il faut que je fasse un script alors ?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/14 "2016-02-21T12:28:40Z")

</div>

> [@ricardo](#):
>
> [quote]Essaie en allant à la ligne après le ;.

Il faut que je fasse un script alors ?[/quote]  
Non, non pas besoin après le ; tu tape entrée et ça te passe à la ligne (il comprend que tu n’a pas finie la commande le gaillard 🙂 ).

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 21, 2016, 12:28 UTC](https://www.debian-fr.org/t/modifier-liste-fichiers/53846/15 "2016-02-21T12:28:40Z")

</div>

Trouvé l’erreur, elle est de ma faute, bien sûr : y veut pas de ‹&nbsp;sudo&nbsp;› 😒  
Il lui faut impérativement su - (certains des fichoiers sont en 644 )  
terminé, merci bisous à tous. ![:041](https://www.debian-fr.org/uploads/default/original/1X/bfe857c9119752799c3eac55ca37a50312c51282.gif "applaudit")
