Comment gérer le passage de noms de fichiers avec des espaces dans Bash

Linux a un shell par défaut Bash (alias Bourne again shell) pour exécuter des commandes pour le système. La plupart des programmeurs préfèrent bash à cmd en raison de la flexibilité et du puissant interpréteur de ligne de commande fournis par bash. Cependant, la plupart des utilisateurs auront toujours des problèmes en essayant de gérer le passage de noms de fichiers avec des espaces dans bash. En effet, les espaces ne sont pas considérés comme identiques dans bash comme dans les noms de fichiers.

Fichiers avec des espaces dans le nom

Pourquoi le nom de fichier avec des espaces n'est pas reconnu par Bash?

Dans Bash, si vous tapez plusieurs mots sans caractère d' échappement (\) ni citation, tous les mots seront considérés comme des arguments. Cela s'applique à toutes les opérations, que vous changiez de répertoire avec ' cd ' ou essayiez d'accéder à des fichiers avec des commandes ' cat '. Tout ce que vous écrivez après utilisation sera considéré comme un argument. Par exemple:

 cat nom de fichier.txt 

Exécution de la commande sans utiliser de caractère d'échappement ni de citations

Remarque : votre nom de fichier peut être n'importe quoi, mais pour cet article, nous utiliserons « fichier nom.txt » à titre d'exemple.

Ici, la commande ' cat ' considérera le fichier et le nom comme deux arguments plutôt que comme un seul argument. Cependant, si vous utilisez un caractère d'échappement ou des citations, bash shell le considérera comme un argument unique, qui sera le «nom de fichier.txt ».

Nom de fichier avec des espaces dans Bash

Peu de méthodes peuvent être utilisées pour les espaces dans le nom. La meilleure pratique consiste à éviter les espaces pour les noms de fichiers à l'avenir. Une méthode simple consiste à renommer le fichier auquel vous essayez d'accéder et à supprimer des espaces. D'autres méthodes utilisent des guillemets simples ou doubles sur le nom de fichier avec des espaces ou utilisent le symbole d'échappement (\) juste avant l'espace. Nous fournirons des méthodes avec des exemples appliqués pour vous montrer comment cela fonctionne.

Méthode 1: Utilisation de citations simples et doubles

  1. Maintenez les touches Ctrl + Alt enfoncées et appuyez sur T pour ouvrir le terminal .
  2. Maintenant, changez de répertoire à l'endroit où se trouve le fichier.

    (vous pouvez également faire glisser le fichier dans le terminal après la commande ' cat ', qui placera automatiquement des citations sur le chemin / répertoire du fichier)

     cd bureau 

    Changer de répertoire

    Remarque : Desktop peut être modifié pour l'emplacement auquel vous essayez d'accéder.

  3. Tapez la commande suivante pour lire un fichier texte avec des espaces dans le nom:
     cat 'nom de fichier.txt' 

    ou

     chat "nom de fichier.txt" 

    Utilisation de citations pour éviter les espaces dans l'erreur de nom
  4. Les citations simples et doubles donneront le même résultat. Dans certains cas, vous devez essayer les deux et voir lequel fonctionne.

Méthode 2: Utilisation du caractère d'échappement Backlash

  1. Maintenez les touches Ctrl + Alt enfoncées et appuyez sur T pour ouvrir le terminal .
  2. Modifiez le répertoire dans lequel se trouve le fichier à l'aide de la commande suivante.
     cd bureau 

    Remarque : mettez votre nom de lieu à la place de Bureau.

  3. Maintenant, tapez la commande et utilisez le caractère d' échappement partout où il y a un espace dans le nom:
     cat file \ name.txt 

    Utilisation du caractère d'échappement pour éviter les espaces

Bonus: utilisation de citations et évasion

Parfois, lorsque vous utilisez le répertoire dans la commande, l’utilisation de citations sur le chemin global peut avoir des conséquences. En effet, certaines commandes telles que " mv " ou " cp " considéreront le chemin comme source du fichier si la citation est utilisée dans son ensemble. Vous devez fournir des devis pour la source et la destination individuellement afin que les commandes telles que " cp " puissent fonctionner correctement. Vous pouvez également consulter l'exemple ci-dessous, qui montre que l'utilisation du caractère d'échappement pour le chemin est beaucoup plus complexe et que les utilisateurs peuvent s'y tromper.

La différence entre les citations et le caractère d'échappement

Des Articles Intéressants