Modifier liste fichiers

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

Si j’ai bien compris la question :

:018

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

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*

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 :

[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 ?

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

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

:023

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.

Y m’énerve :013
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 ‘a’ 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 »

[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.

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

[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.

[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 :

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

Il faut que je fasse un script alors ?

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 :slightly_smiling: ).

Trouvé l’erreur, elle est de ma faute, bien sûr : y veut pas de ‘sudo’ :unamused:
Il lui faut impérativement su - (certains des fichoiers sont en 644 )
terminé, merci bisous à tous. :041