Lorsque vous travaillez avec Linux, vous pouvez rencontrer des utilitaires et des applications qui ne fonctionnent qu'avec des noms de fichiers qui n'incluent aucun espace. Nous n'enregistrons pas toujours les fichiers dans ce format "sans espace" et nous devrons peut-être rechercher une solution de contournement qui supprime complètement les espaces dans les noms de fichiers. De cette façon, vos noms de fichiers ne contiendront aucun espace et vous pourrez facilement les utiliser dans toutes vos applications.
Dans cet article, nous vous expliquerons deux façons de supprimer les espaces de vos noms de fichiers, très simplement via la ligne de commande Ubuntu.
Nous avons exécuté les commandes et procédures mentionnées dans cet article sur un système Ubuntu 18.04 LTS.
Méthode 1 :via la commande mv dans la boucle "for"
Dans cette méthode, nous utiliserons la commande Ubuntu mv, dans une boucle for, afin de renommer tous les fichiers/dossiers d'un répertoire de sorte que tous les espaces soient supprimés.
Ouvrez votre ligne de commande Ubuntu, le Terminal, soit via la recherche du lanceur d'applications, soit via le raccourci Ctrl+Alt+T.
Voici à quoi ressemblent les fichiers de mon dossier d'exemple ; J'ai répertorié le contenu à l'aide de la commande ls :
Ainsi, tous les noms de fichiers contiennent non pas un, mais deux espaces chacun.
Voici la commande que j'utiliserai dans le répertoire dont je veux renommer les fichiers :
$ for oldname in *; do newname=`echo $oldname | sed -e 's/ //g'`; mv "$oldname" "$newname";
terminé
Lorsque j'ai listé à nouveau le contenu du répertoire, vous pouvez voir que tous les noms de fichiers ne contiennent plus d'espaces.
Méthode 2 :Utiliser un script bash pour renommer les fichiers
Dans cette méthode, nous utiliserons un script bash qui utilise la commande mv afin de renommer les noms de fichiers et de dossiers de manière à supprimer tous les espaces.
Ouvrez l'application Terminal et déplacez-vous vers le dossier bin comme suit :
$ cd ~bin
Maintenant, ouvrez un nouveau fichier de script dans l'un de vos éditeurs de texte préférés. Nous allons utiliser l'éditeur Nano pour ouvrir un fichier de script vide du nom de remove_spaces.sh
$ sudo nano remove_spaces.sh
Dans ce fichier vide, ajoutez le script suivant :
#!/bin/bash ( IFS=$'\n' for y in $(ls $1) do mv $1/`echo $y | sed 's/ /\\ /g'` $1/`echo "$y" | sed 's/ /_/g'` done )
Astuce : Au lieu de taper tout le script dans votre fichier bash, vous pouvez le copier à partir d'ici et le coller dans le terminal en utilisant Ctrl+Maj+V, ou en utilisant l'option Coller du menu contextuel.
Voici à quoi ressemblera votre fichier :
Maintenant, quittez le fichier via le raccourci Ctrl + X et enregistrez le fichier sur le "Enregistrer le tampon modifié?" invite en tapant Y puis en appuyant sur Entrée.
Afin de faire de ce fichier un script exécutable, exécutez la commande suivante dans votre Terminal :
$ sudo chmod +x remove_spaces.sh
Vous êtes maintenant prêt à utiliser le script dans n'importe lequel de vos dossiers.
Lorsque j'exécute le script sur mon répertoire "sample" dans le dossier Téléchargements, je vois tous les espaces dans mes noms de fichiers supprimés. Vous pouvez voir le résultat lorsque je liste à nouveau le contenu du fichier à l'aide de la commande ls :
Ce sont donc les deux manières de renommer les fichiers afin que tous les espaces dans leurs noms soient supprimés. Désormais, toute application que vous utilisez ne manquera pas de reconnaître les noms de fichiers contenant des espaces.