Je veux renommer tous les fichiers d'un dossier et ajouter un extension .xml code>. J'utilise UNIX. Comment puis-je faire ça? P>
4 Réponses :
dans python fort>: p>
Utiliser Utilisez ensuite os.listdir code> pour rechercher des noms de tous les fichiers d'un répertoire. Si vous avez besoin de em> récursivement em> Rechercher tous les fichiers des sous-répertoires également, utilisez
os.walk code> à la place. Son API est plus complexe que
os.listdir code> mais il fournit des moyens puissants des répertoires de marche récursive. P>
os.rnerame code> pour renommer les fichiers. P>
@Web Developer: Avez-vous venu -1 -1 me pour vous fournir une réponse? Sérieusement?
sur la coquille, vous pouvez le faire:
find . -type f -exec mv {} {}.xml ';'
Comment puis-je le faire de manière récursive sur tous les sous-répertoires aussi
Utilisez trouver code> pour trouver les fichiers;
trouver. -Type f -exec mv {} {} .xml ';' code>.
Aussi, s'ils ont déjà une extension .xml, je ne veux pas qu'ils soient renommés
Oui, ne laissez pas emporter pour changer la question dans les commentaires. Découvrez tldp.org/ldp/abs/html/string-manipulation.html < / a> Pour voir comment tester si votre nom de fichier correspond à un ".xml" à la fin.
Je ne sais pas si c'est standard, mais mon package perl ubuntu) comprend un
/ usr / bin / préname code> (et un symboliste juste
Renommer code>) qui n'a pas d'autre objectif:
Comment puis-je le faire de manière récursive sur tous les sous-répertoires, mais pas sur les fichiers .xml. c'est-à-dire des fichiers qui ne sont pas déjà renommés
Avec $ (recherche -TYpe f) code> au lieu de
* code>. Et adapter la regex avec une affirmation
s / (?
Vous pouvez utiliser Rename avec -n Drapeau pour tester comment le renommage serait sans renommer les fichiers.
find . -type f \! -name '*.xml' -print0 | xargs -0 rename 's/$/.xml/'
Ces tags créent une confusion. Voulez-vous faire cela dans PHP, Python ou Shell Unix?
Renommer 'S / $ / \. XML /' * Référence: askubuntu.com/a/74368