Dans un répertoire, j'ai un tas d' *.html
fichiers.
Je voudrais renommer toutes à l' *.txt
J'utilise le shell bash.
Dans un répertoire, j'ai un tas d' *.html
fichiers.
Je voudrais renommer toutes à l' *.txt
J'utilise le shell bash.
Les éléments suivants devraient faire et ne nécessite pas le système pour avoir l' rename
program (bien que le plus souvent ce sur un système):
for file in *.html; do
mv "$file" "`basename $file .html`.txt"
done
EDIT: Comme l'a souligné dans les commentaires, cela ne fonctionne pas pour les noms de fichiers avec des espaces dedans sans la citation (maintenant ajouté ci-dessus). Lorsque l'on travaille uniquement sur vos propres fichiers que vous savez ne pas avoir des espaces dans les noms de fichiers cela fonctionne mais à chaque fois que vous écrivez quelque chose qui peut être réutilisé ultérieurement, ne sautez pas bon de le citer.
Pour une meilleure solution (avec seulement les fonctionnalités de bash, par opposition à des appels externes), voir l'une des autres réponses.
Vous souhaitez utiliser rename
:
rename .html .txt *.html
C'est exactement ce que vous voulez - il va changer l'extension d' .html
de .txt
pour tous les fichiers correspondant à l' *.html
.
Remarque: Greg Hewgill souligne à juste titre ce n'est pas un bash builtin, et est séparée de commande Linux. Si vous avez juste besoin quelque chose sur Linux, cela devrait fonctionner correctement; si vous avez besoin de quelque chose de plus de la croix-plate-forme, puis jetez un oeil à l'un des autres réponses.
Malheureusement, il n'est pas trivial à faire de façon portable. Vous avez probablement besoin d'un peu de expr magie.
for file in *.html; do echo mv -- "$file" "$(expr "$file" : '\(.*\)\.html').txt"; done
Suppression de l'écho une fois que vous êtes heureux, il fait ce que vous voulez.
Edit: basename
est probablement un peu plus lisible pour ce cas particulier, bien que l' expr
est plus souple en général.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.