Comment modifier les extensions de fichiers via la ligne de commande sous Mac OS
Les utilisateurs en ligne de commande peuvent trouver utile de modifier et de renommer l'extension d'un groupe de fichiers dans un répertoire. Par exemple, disons que vous avez un lot de fichiers avec l'extension ".txt" mais que vous voulez que toutes ces extensions soient ".py". C'est ce que nous allons démontrer ici en nous appuyant sur un simple script bash pour modifier un groupe d'extensions de fichiers en ligne de commande de Mac OS / OS X, mais cela fonctionnera également sous linux et d'autres saveurs unix.
Avant de commencer, sachez qu'il ne s'agit pas de changer un type de fichier, mais seulement l'extension du fichier. De plus, cette approche de découverte utilise intentionnellement la ligne de commande et s'adresse donc aux utilisateurs plus avancés. Cependant, le Terminal n'est pas le seul moyen de le faire, et si cela est trop avancé ou sans rapport avec vos compétences d'utilisateur, rappelez-vous que Mac OS offre des outils simples pour renommer des fichiers par lots dans Mac OS et pour modifier les extensions de fichiers par lots dans le Finder également, aucun des deux n'exigeant la ligne de commande. VOUS ÊTES D'ACCORD ? Passons maintenant à l'approche en ligne de commande en utilisant un simple script bash d'une ligne.
Au fait, vous devez toujours faire une copie et/ou une sauvegarde des fichiers que vous modifiez, en particulier si vous êtes nouveau dans la ligne de commande. Si vous ne le faites pas, vous risquez de perdre des données, le terminal ne pardonne pas les fautes de frappe ou les erreurs, alors ne sautez pas vos sauvegardes.
Comment modifier toutes les extensions de fichiers dans un répertoire via la ligne de commande
Prenons quelques exemples. Dans le premier exemple, nous allons changer tous les fichiers du répertoire de travail actuel avec l'extension ".txt" et les remplacer par ".py". En supposant que vous soyez dans le répertoire où vous souhaitez changer tous les fichiers du répertoire actuel pour une nouvelle extension de fichier, voici la syntaxe à utiliser :
pour le fichier en *.txt ; do mv "$file" "${file%.txt}.py" ; done
Notez qu'il utilise le caractère générique * qui signifie que tout ce qui se trouve dans le répertoire actuel correspondant à l'extension de fichier "*.txt" sera modifié. Notez également les multiples instances de "txt" et l'unique instance de "py" que vous voudriez modifier pour répondre à vos besoins.
Tout ce que cela fait, c'est créer une simple boucle où les fichiers correspondant au joker et à l'extension de fichier initiale sont trouvés, puis exécuter la commande "mv" pour déplacer (renommer) ces fichiers de l'extension de fichier initiale au remplacement. Plutôt simple, non ?
Prenons un autre exemple, disons que nous avons une collection de fichiers d'images dans le répertoire actuel avec des noms de fichiers comme "blahblah.jpg.JPEG" mais que nous voulons vraiment qu'ils aient tous le même nom de fichier du moins redondant et plus facile à lire "blazblah.jpeg". Dans ce cas, la syntaxe ressemblerait à ce qui suit :
pour le fichier en *.jpg.JPEG ; do mv "$file" "${file%.jpg.JPEG}.jpeg" ; done
L'approche en ligne de commande pour changer les extensions de fichiers est assez rapide et les extensions de fichiers seront changées rapidement, sans dialogues d'avertissement ou confirmations.
Et pour le répéter une fois de plus, il ne s'agit pas de convertir des types de fichiers ou de modifier quoi que ce soit d'autre que le nom de l'extension du fichier.
Vous connaissez une meilleure façon de modifier un ensemble d'extensions de fichiers dans un répertoire via la ligne de commande ? Vous voulez simplement consulter d'autres astuces pour la ligne de commande (cliquez ici) ? Faites-nous part de vos réflexions dans les commentaires !