Comment: remplacer les espaces dans les noms de fichiers par des traits de soulignement

linux-shell

Dans les environnements Unix, beaucoup de travail est effectué avec l'interpréteur de commandes, en fait, de nombreux systèmes n'ont même pas d'environnement de bureau installé. Pourtant, sous Linux, vous travaillez généralement beaucoup depuis le terminal. Lorsque vous travaillez avec des noms de fichiers et de répertoires, il est parfois difficile d'avoir des espaces dans leurs noms. Savoir éviter ces petits problèmes ne serait pas un problème, mais il est vrai que c'est plus à l'aise quand ils n'ont pas ces espaces ...

Si vous ne savez pas comment utiliser des noms avec des espaces depuis le terminal ou si vous souhaitez supprimer ces espaces facilementDans cet article, vous apprendrez tout ce dont vous avez besoin pour rendre l'expérience utilisateur aussi confortable que possible lorsque vous travaillez quotidiennement sur GNU / Linux. Désormais, les espaces des noms ne seront plus un obstacle pour vous ...

Comment travailler avec les espaces

Espaces de noms Linux

Travailler avec des espaces dans les noms est simple, donc je vais d'abord montrer comment les répertoires ou les fichiers peuvent être utilisés avec espaces dans leurs noms. Ainsi, tous ceux qui ont des problèmes avec cela peuvent apprendre à l'utiliser et perdre la peur de tomber sur des noms avec des espaces.

  • Pour indiquer qu'il y a un espace dans le nom, vous pouvez utiliser la barre oblique ou la barre oblique inverse, c'est-à-dire \. Par exemple, si le nom que vous essayez d'écrire est celui que vous voyez dans l'image «RISC-V docs», vous pouvez écrire «RISC-V \ docs» (sans guillemets). De cette façon, vous direz à Bash qu'il s'agit d'un espace et non que vous avez entré plusieurs paramètres pour cette commande séparés par un espace.
  • Vous pouvez aussi utiliser les guillemets doubles «» pour entourer le nom d'espaces, indiquant au shell qu'il ne s'agit pas de paramètres séparés, mais qu'il s'agit du même nom. Par exemple, dans l'exemple précédent avec cd, si vous souhaitez accéder à ce répertoire avec des espaces, vous pouvez utiliser:
cd "RISC-V docs"

  • Un autre truc consiste à commencer à taper les premières lettres du nom et à appuyer sur la touche Tab (celle juste au-dessus du verrouillage des majuscules). De cette façon, le nom est complété automatiquement. Cela ne fonctionnera pas s'il y a plusieurs noms qui commencent le même, par exemple s'il y a un "RISC-V docs" et un "RISC-V isa" ne fonctionnerait pas. Oui, cela fonctionnerait dans le cas d'avoir un «RISC-V docs» et un «RISC-I docs», puisque dès que vous entrez le caractère I, il connaîtra le nom de celui-ci ...

Maintenant ça vous pouvez ne pas le trouver pratique ou vous ne l'aimez tout simplement pas devoir faire cela chaque fois que vous travaillez avec des espaces. Par conséquent, si vous souhaitez les éliminer, vous pouvez lire la section suivante ...

Comment remplacer des espaces

remplacer les espaces par des traits de soulignement Linux

Il est vrai que pour les environnements graphiques, les noms avec des espaces sont plus confortables et agréables à nommer des fichiers. Mais ce n'est pas si pratique pour le terminal. Par conséquent, si vous ne souhaitez pas suivre les étapes de la section précédente et souhaitez se débarrasser des espaces de bonheur une fois pour toutes, vous pouvez suivre ces étapes:

  • Allez dans le répertoire où se trouvent les noms avec des espaces que vous souhaitez remplacer par n'importe quel caractère. Dans ce cas, j'ai utilisé un trait de soulignement, mais vous pouvez remplacer ce symbole par un autre, il vous suffit de modifier la commande.
  • Une fois dans le répertoire, vous pouvez utiliser cette commande qui changera tous les espaces de noms en _. Attention, car s'il y a des noms dans lesquels vous souhaitez conserver les espaces, vous devez considérer que cette commande les changera tous:
for file in *; do mv "$file" `echo $file | tr ' ' '_'`; done

  • Pour allez un par unBien que ce ne soit pas pratique, vous pouvez utiliser la commande suivante dans les cas où vous ne souhaitez remplacer les espaces que pour un seul nom et pas pour tous automatiquement:
mv nombre\ con\ espacios nombre_sin_espacios

  • Alternativement utiliser un script que vous pouvez appeler chaque fois que vous souhaitez remplacer les espaces par des traits de soulignement. Vous pouvez donc l'exécuter dans n'importe quel répertoire sans avoir à écrire la commande à chaque fois que vous en avez besoin. Pour cela, vous devez utiliser votre éditeur de texte préféré et créer un fichier appelé, par exemple, spaceskiller.sh, enregistrer le contenu, lui donner les autorisations d'exécution et le saisir dans un chemin de ceux de la variable d'environnement $ PATH (par exemple: / usr / bin) et vous n'aurez donc qu'à invoquer son nom, sans avoir à indiquer le chemin où se trouve le .sh. Ok, cela dit, le contenu du script serait le suivant:
<pre>#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo no se renombró \""$f"\" porque \""$new"\" ya existe
    else
      echo renombrando "$f" a "$new"
    mv "$f" "$new"
  fi
fi
done</pre>

Si vous avez opté pour le script et l'avez entré dans l'un des répertoires $ PATH, chaque fois que vous êtes dans un répertoire et que vous souhaitez remplacer les espaces par des traits de soulignement (ou tout autre caractère si vous le modifiez), vous n'aurez qu'à course:

./spaceskiller.sh

J'espère vous avoir aidé avec ce tutoriel, vous pouvez laisser vos commentaires avec des questions ou des contributions ...


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Andres dit

    Merci beaucoup votre script est très utile