How to: reemplaçar els espais dels noms d'arxiu per guions baixos

Shell Linux

En els entorns Unix es treballa bastant amb l'intèrpret d'ordres, de fet, molts sistemes no tenen ni un entorn d'escriptori instal·lat. per tant, En Linux també se sol treballar força des del terminal. Quan es treballa amb noms de fitxers i directoris de vegades és complicat quan aquests tenen espais en els seus noms. Sabent com saltar aquests petits problemes no hi hauria problema, però és cert que és més còmode quan no tenen aquests espais ...

Si no saps com utilitzar noms amb espais des del terminal o si vols eliminar aquests espais de forma fàcil, En aquest article aprendràs tot el necessari perquè l'experiència d'usuari sigui el més còmoda quan treballis en el dia a dia en GNU / Linux. A partir d'ara, els espais dels noms no suposaran un obstacle per a tu ...

Com treballar amb espais

espais noms Linux

Treballar amb espais en noms és senzill, així que primer vaig a mostrar com es poden fer servir directoris o fitxers amb espais en els seus noms. Així, tots aquells que tenen problemes amb això podran aprendre a usar-lo i perdran la por a topar-se amb noms amb espais.

  • Per a la indicar que hi ha un espai en el nom, Pots fer servir el slash o barra invertida, és a dir, \. Per exemple, si el nom que estàs intentant escriure és el que veus a la imatge «RISC-V docs», pots escriure «RISC-V \ docs» (sense cometes). D'aquesta forma li estaràs indicant a Bash que es tracta d'un espai i no que has introduït diversos paràmetres per aquest comando separats per un espai.
  • També pots fer servir les cometes dobles «» per tancar el nom amb espais, indicant a l'intèrpret d'ordres que no són paràmetres separats, sinó que és un mateix nom. Per exemple, en l'exemple anterior amb cd, si volguessis anar a dit directori amb espais podries fer servir:
cd "RISC-V docs"

  • Un altre truc és començar a escriure les primeres lletres del nom i prémer la tecla Tab (la que hi ha just per sobre de Bloq Majús). D'aquesta manera es autocompleta el nom. Això no funcionarà si hi ha diversos noms que comencin igual, per exemple, si hi ha un «RISC-V docs» i un «RISC-V isa» no serviria. Sí que funcionaria en el cas d'haver-hi un «RISC-V docs» i «RISC-I docs», ja que quan introdueixis el caràcter I sabrà el nom de què es tracta ...

Ara bé, això pot ser que no et resulti pràctic o simplement no t'agradi haver d'estar fent això cada vegada que treballis amb espais. Per això, si vols eliminar-los, pots llegir el següent apartat ...

Com reemplaçar els espais

substituir espais per guions baixos Linux

És cert que per als entorns gràfics, els noms amb espais són més còmodes i agradables per nomenar arxius. Però no és tan pràctic per al terminal. Per això, si no vols seguir els passos de l'apartat anterior i vols desfer-te d'una vegada per totes dels joiosos espais, Pots seguir aquests passos:

  • Vés a directori on es trobin els noms amb espais que vulguis substituir per qualsevol caràcter. En aquest cas he fet servir un guió baix, però pots substituir aquest símbol per qualsevol altre, només has de modificar la comanda.
  • Un cop dins de directori, pots fer servir aquesta comanda que canviarà tots els espais de noms per _. Vés amb compte, perquè si hi ha noms en els que vulguis conservar els espais has de considerar que aquesta ordre els canviarà tots:
for file in *; do mv "$file" `echo $file | tr ' ' '_'`; done

  • Per a la anar un a un, Encara que això no sigui pràctic, pots usar el següent comandament en els casos en què només vulguis substituir els espais per a un sol nom i no per a tots de forma automàtica:
mv nombre\ con\ espacios nombre_sin_espacios

  • Una altra opció és utilitzar un script que puguis invocar cada vegada que vulguis substituir els espais per guions baixos. Així el podràs executar en qualsevol directori sense necessitat d'escriure l'ordre cada vegada que la necessitis. Per això has de fer servir el teu editor preferit i crear un fitxer anomenat, per exemple, spaceskiller.sh, guardar el contingut, donar-li permisos d'execució, i introduir-lo en una ruta de les que hi ha a la variable d'entorn $ PATH (pe : / usr / bin) i així només hauràs invocar el seu nom, sense necessitat d'indicar la ruta on hi ha el .sh. D'acord, un cop dit això, el contingut de l'script seria el següent:
<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 has optat per l'script i ho has introduït en algun dels directoris de $ PATH, cada vegada que estiguis dins d'un directori i vulguis substituir els espais per guions baixos (o qualsevol altre caràcter si ho modifiqueu), només hauràs de executar:

./spaceskiller.sh

Espero haver-te ajudat amb aquest tutorial, pots deixar els teus comentaris amb qualsevol dubte o aportació ...


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Andres va dir

    Moltes gràcies molt útil el teu script