GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment remplacer les espaces dans les noms de fichiers par des traits de soulignement sur le shell Linux

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 pas d'espaces. Nous n'enregistrons pas toujours les fichiers dans ce format "sans espace" et nous devrons peut-être rechercher une solution de contournement qui remplace les espaces dans les noms de fichiers par des caractères de soulignement "_". De cette façon, vos noms de fichiers ne contiendront aucun espace et vous pourrez facilement les utiliser dans toutes les applications.

Dans cet article, nous vous expliquerons deux façons de convertir tous les espaces dans les noms de fichiers en traits de soulignement, très simplement via la ligne de commande.

Nous avons exécuté les commandes et procédures mentionnées dans cet article sur un système Ubuntu 18.04 LTS.

Mon dossier Téléchargements, que j'utiliserai comme exemple pour cet article, contient des espaces dans tous les noms de fichiers.

$ ls Downloads

J'utiliserai ce dossier pour expliquer comment convertir les noms de fichiers dans un nouveau format.

Méthode 1 :via une seule commande mv

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 donné afin que tous les espaces dans leurs noms soient remplacés par des caractères de soulignement.

Ouvrez votre ligne de commande Ubuntu, le Terminal, soit via la recherche du lanceur d'applications, soit via le raccourci Ctrl+Alt+T.

Voici la syntaxe de la commande que vous utiliserez :

$ for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done

J'ai exécuté la même commande pour remplacer les espaces par des traits de soulignement dans mon dossier Téléchargements :

Lorsque j'ai de nouveau répertorié le contenu du répertoire, vous pouvez voir que tous les noms de fichiers contiennent désormais des traits de soulignement au lieu d'espaces.

Méthode 2 :Utiliser un script pour renommer des 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 à ce que tous les espaces soient remplacés par des traits de soulignement.

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 afin d'ouvrir un fichier de script vide du nom de replace_spaces.sh

$ sudo nano replace_spaces.sh

Dans ce fichier vide, ajoutez le script suivant :

#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo not renaming \""$f"\" because \""$new"\" already exists
    else
      echo moving "$f" to "$new"
    mv "$f" "$new"
  fi
fi
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 replace_spaces.sh

Vous êtes maintenant prêt à utiliser le script dans n'importe lequel de vos dossiers.

Lorsque j'exécute le script dans mon exemple de dossier Téléchargements, je vois tous les espaces dans mes noms de fichiers convertis en traits de soulignement comme suit :

Donc, ce sont les deux façons par lesquelles vous pouvez renommer les fichiers afin que tous les espaces dans leurs noms soient convertis en traits de soulignement. Désormais, toute application que vous utilisez ne manquera pas de reconnaître les noms de fichiers contenant des espaces.


Ubuntu
  1. Principes de base de Linux :comment télécharger des fichiers sur le shell avec Wget

  2. Comment utiliser la commande tail dans Ubuntu Linux

  3. Comment gérer les services Linux avec la commande systemctl

  4. Comment changer le shell par défaut sous Linux

  5. Comment renommer des fichiers avec des espaces à l'aide du shell Linux ?

Comment exécuter un script Shell en tant que service Systemd sous Linux

Comment lire un fichier avec des espaces sous Linux

Comment changer le shell utilisateur par défaut dans le système d'exploitation Linux

Comment afficher les données avec la commande Tail sous Linux

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

Sécurisez Linux avec le fichier Sudoers