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 :
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
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 ).
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 ?
Y m’énerve
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.
[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 :
Ç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.
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 ).
Trouvé l’erreur, elle est de ma faute, bien sûr : y veut pas de ‹ sudo ›
Il lui faut impérativement su - (certains des fichoiers sont en 644 )
terminé, merci bisous à tous.