Moltes vegades t'hauràs topat amb noms de fitxers i directoris que tenen espais intermedis als seus noms, especialment aquells que provenen de Windows. Aquests espais són moltes vegades molestos, especialment per treballar des de l'intèrpret d'ordres, ja que necessites identificar-los perquè no siguin tractats com a noms o opcions d'una ordre separades. Per això, en aquest tutorial veurem algunes formes de eliminar els espais de forma automatitzada.
A més, també veurem com es poden fer servir aquests fitxers o directoris amb noms que tenen espais sense que et llanci un error.
Com utilitzar fitxers i directoris amb espais
Per mirar de escapar dels espais dels noms dels fitxers i directoris al terminal de Linux, ho pots fer d'aquestes formes:
- Incloent «» (cometes dobles) en part de la ruta on hi hagi espais oa tota ella. Per exemple:
cd "nombre con espacio"/
- Usant un caràcter \ abans de cada espai. Per exemple:
nano nombre\ con\ espacio.txt
D'aquestes maneres, aconseguiràs eludir aquests molestos espais. Ara bé, per no haver de tornar a fer servir aquestes opcions que poden ser més incòmodes, podràs seguir els passos següents…
Com eliminar els espais dels noms
Ara bé, pots fer servir diversos mètodes perquè aquests espais en noms deixin de ser un problema per sempre. Si tens gran quantitat de noms amb espai, no és lògic fer-ho un per un, però es pot automatitzar aquestes tasques per eliminar o substituir els espais:
- Usar l'ordre rename per fer-ho. Per exemple, el primer d'aquestes ordres elimina els espais de tots els .txt, mentre que el segon ho fa a tots els fitxers dins del directori actual:
rename 's/\s/_/g' ./*.txt
rename 's/\s/_/g' ./*.*
- Usar find per reemplaçar tots els noms que tinguin espais, substituint aquests per _. Per exemple, fer-ho amb tots els .txt del directori actual o de tot el FS:
find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \; **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;
Sigues el primer a comentar