GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer les espaces des noms de fichiers sous Linux

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.


Linux
  1. Comment supprimer les lignes vides d'un fichier (y compris les tabulations et les espaces) ?

  2. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  3. Comment supprimer les mots en double d'un fichier texte brut à l'aide de la commande linux

  4. Comment puis-je supprimer complètement Jenkins de Linux

  5. Comment supprimer les versions précédentes de .NET Core de Linux (CentOS 7.1)

Comment supprimer une commande de l'historique sous Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment supprimer les caractères (^M) d'un fichier sous Linux

Comment désinstaller des applications d'Ubuntu Linux

Comment désinstaller des programmes d'Ubuntu Linux

Comment gérer les noms de fichiers avec des espaces sous Linux