GNU/Linux >> Tutoriels Linux >  >> Linux

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

La seule chose que vous remarquerez est que les fichiers sous Linux ne contiennent généralement pas de noms. Votre enseignant ou collègue utilise un trait de soulignement au lieu d'espaces dans les noms de fichiers et de répertoires.

Ce n'est pas que vous ne pouvez pas utiliser d'espaces dans les noms de fichiers dans le terminal Linux. C'est juste que cela crée une douleur supplémentaire et c'est pourquoi vous devriez l'éviter autant que possible.

Pourquoi? Permettez-moi de le montrer avec des exemples. Vous connaissez la syntaxe générique des commandes Linux :

command [options] argument1 argument2

Ici, les arguments sont séparés par des espaces. Si vous essayez d'utiliser directement des noms de fichiers avec des espaces, ils seront traités comme des arguments séparés plutôt que comme un seul argument.

Dans la capture d'écran ci-dessus, lorsque j'essaie d'utiliser des cat agatha books commande, il ne comprend pas que agatha books est un seul argument. Il traite agatha et books sous différents noms de fichiers.

Comment gérez-vous les espaces dans le nom de fichier, alors? Il existe deux manières :

Enveloppez le nom de fichier entier entre guillemets :

"file name withn spaces"

Échappez à chaque espace à l'aide de la barre oblique inverse :

file\ name\ with\ spaces

Je vais le montrer en détail.

La complétion par tabulation fonctionne souvent aussi avec des espaces. Votre terminal peut afficher le nom du fichier avec un espace échappé avec une barre oblique inverse si vous appuyez sur la touche de tabulation pour le nom du fichier.

Lire un fichier avec des espaces dans le nom de fichier

Pour utiliser un nom de fichier contenant des espaces, vous pouvez l'entourer de guillemets comme ceci :

cat "file name with spaces"

Vous pouvez également échapper à chaque espace avec une barre oblique inverse, mais c'est plus laborieux et plus déroutant que la méthode précédente :

cat file\ name\ with\ spaces

En gros, vous mettez un \ avant chaque espace dans le nom de fichier.

Vous pouvez également utiliser des guillemets simples au lieu de guillemets doubles.

cat 'file name with spaces'
Les guillemets simples ignorent les caractères spéciaux. Les guillemets doubles ignorent tout sauf $, les guillemets arrière et les barres obliques. Plus d'informations dans un autre tutoriel.

Créer un fichier avec un espace dans le nom de fichier

Maintenant, vous devez taper un espace dans le terminal pour créer le nom de fichier ici. Utilisez à nouveau une barre oblique inverse ou des guillemets.

Comme dans la section précédente, vous pouvez créer de nouveaux fichiers avec des espaces dans le nom de fichier en utilisant des guillemets :

touch "file name with spaces"

Ou la barre oblique inverse également :

touch file\ name\ with\ spaces

Traitement de l'espace dans le nom du dossier

Vous pouvez créer un répertoire avec un espace dans son nom de la même manière que vous créez un fichier.

mkdir "new dir"

Maintenant, si vous voulez basculer vers ce répertoire, vous aurez un chemin avec des espaces.

Mais cela ne devrait plus être un problème pour vous. Pour cd dans un répertoire avec un espace, utilisez à nouveau les guillemets ou la barre oblique inverse.

cd "new dir"
cd new\ dir

Fondamentalement, chaque fois que vous devez gérer des espaces dans les noms, vous utilisez des guillemets ou des barres obliques inverses.

Supposons que vous deviez copier un fichier my file à partir de ce new dir . Voici ce que vous pouvez faire :

cp new\ dir/my\ file

Maintenant, ça commence à devenir un peu déroutant, non ? Il y a des barres obliques inverses et des barres obliques. Cela pourrait intimider un nouvel utilisateur ou même un utilisateur chevronné s'il y a beaucoup trop de ces barres obliques.

Cela devient encore plus compliqué lorsqu'il y a des barres obliques inverses dans le nom de fichier. Ensuite, vous verrez des doubles dosserets.

C'est la raison pour laquelle vous devriez essayer d'éviter d'utiliser des espaces ou d'autres caractères spéciaux dans les noms de fichiers. Pour séparer les mots d'un nom de fichier, utilisez le trait de soulignement.

touch a_very_long_file_name_with_too_many_words

Cela rend les noms de fichiers plus faciles à lire et vous n'aurez pas à faire l'effort supplémentaire de gérer ces espaces dans les noms de fichiers.


Linux
  1. Comment manipuler les noms de fichiers contenant des espaces et des caractères spéciaux sous Linux

  2. Linux + Comment ignorer (filtrer) un fichier avec de l'espace ?

  3. Comment renommer un fichier sous Linux ?

  4. Comment créer un système de fichiers ZFS avec compression de fichiers sous Linux

  5. Comment remplacer un fichier en jar par une ligne de commande sous Linux ?

Comment utiliser la commande Linux rm avec des exemples

Comment lire un fichier avec des espaces sous Linux

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

Comment créer un lien symbolique vers un fichier sous Linux

Comment supprimer les espaces des noms de fichiers sous Linux

Comment planifier des tâches avec Cron sous Linux