J'ai un ensemble de fichiers sur lesquels j'aimerais appliquer la même commande et la sortie doit contenir le même nom que le fichier traité mais avec une extension différente.
Actuellement, je fais renommer /my/data/Andrew.doc en /my/data/Andrew.txt Je voudrais le faire pour tous les fichiers .doc du dossier / my / data / et conserver le nom.
J'ai essayé plusieurs versions mais je suppose que j'ai une erreur dans la syntaxe car je suis nouveau sur Linux.
command-line
bash
Robert
la source
la source
Réponses:
Il y a au moins cent mille millions de façons différentes d'aborder cela, mais voici les principaux prétendants:
The Bash for loop
En utilisant
find
La
find
commande a une jolie petiteexec
commande qui est idéale pour exécuter des choses (avec quelques mises en garde). La recherche est meilleure que la globalisation de base, car vous pouvez vraiment filtrer les fichiers que vous sélectionnez. Faites attention à la syntaxe étrange.Notez que
find
c'est récursif, vous pouvez donc utiliser-maxdepth 1
pour conserverfind
dans le répertoire de travail actuel.-type f
peut être utilisé pour filtrer les fichiers normaux.Si nous ne faisons que renommer doc txt ...
La
rename
commande ressemble à sed dans la recherche. Évidemment, cela ne fera rien pour convertir le format.la source
la source