Dans d'autres environnements de système d'exploitation, la création et l'utilisation de noms de fichiers avec des espaces sont irrévocablement autorisées. Cependant, lorsque nous entrons dans le domaine du système d'exploitation Linux, l'existence de tels noms de fichiers devient un inconvénient.
Par exemple, considérez l'existence des noms de fichiers suivants dans un environnement de système d'exploitation Linux.
Selon la vue en ligne de commande de ces noms de fichiers, leur traitement ou leur déplacement devient un inconvénient injustifié en raison de l'espace blanc dans leur convention de dénomination.
De plus, les espaces de noms de fichiers sous Linux sont un inconvénient pour les utilisateurs qui les traitent via des applications Web sous la forme de la chaîne %20
a tendance à être inclus dans le nom de fichier traité/final.
Cet article examine les approches valides pour vous aider à vous débarrasser des espaces sur les noms de fichiers lorsque vous travaillez sous un environnement de système d'exploitation Linux.
Prérequis
Familiarisez-vous avec l'utilisation du terminal Linux ou de l'interface de ligne de commande. À des fins de référence pratique, nous utiliserons les noms de fichiers espacés présentés dans la capture d'écran suivante.
1. Suppression des espaces du nom de fichier avec une extension de fichier spécifique
La commande find est combinée avec la commande mv pour exécuter efficacement son objectif fonctionnel de supprimer les espaces sur un nom de fichier avec une extension de fichier spécifique, par exemple .xml
fichiers.
$ find . -type f -name "* *.xml" -exec bash -c 'mv "$0" "${0// /_}"' {} \;
2. Remplacement des espaces de nom de fichier à l'aide de la commande rename
Alternativement, au lieu d'utiliser rechercher avec mv commandes pour tracer et remplacer les espaces de noms de fichiers, nous pourrions utiliser un seul renommer command, qui est une extension Pearl et peut être installée dans les distributions de système d'exploitation Linux suivantes :
$ sudo apt install rename [On Debian, Ubuntu and Mint] $ sudo yum install rename [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/rename [On Gentoo Linux] $ sudo pacman -S rename [On Arch Linux] $ sudo zypper install rename [On OpenSUSE]
Une fois installé, le bouton renommer La commande peut être utilisée de la manière suivante :
$ rename 's/\s/_/g' ./*.xml
La commande ci-dessus remplacera les espaces dans tous les .xml
fichiers avec un trait de soulignement. Pour remplacer tous les espaces dans tous les noms de fichiers, quelle que soit l'extension de fichier, utilisez :
$ rename 's/\s/_/g' ./*.*
3. Remplacement des espaces de nom de fichier à l'aide de la boucle For et de la commande mv
Cette approche est efficace pour se débarrasser des espaces de noms de fichiers sur différents formats de noms de fichiers existant sur un dossier/répertoire spécifique/ciblé. La boucle for la fonction recherche les espaces de nom de fichier dans un répertoire/dossier ciblé et remplace ensuite ces espaces de nom de fichier par une notation de soulignement.
Considérez l'implémentation suivante de cette approche :
$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done
Avant le début de cet article, les espaces de noms de fichiers étaient une nuisance, en particulier lorsque vous deviez copier et déplacer des fichiers depuis le terminal Linux ou les traiter via un programme Web. Ce tutoriel a fourni une solution viable qui fonctionne contre de tels inconvénients.