U mnogim prilikama nailazit ćete na nazive datoteka i direktorije koji u nazivima imaju razmake, osobito one koji dolaze iz Windowsa. Ti prostori su često neugodni, posebno kada radite iz ljuske, budući da ih morate identificirati kako se ne bi tretirali kao zasebni nazivi naredbi ili opcije. Stoga ćemo u ovom tutorialu vidjeti neke načine kako automatski ukloniti razmake.
Osim toga, također ćemo vidjeti kako se oni mogu koristiti datoteke ili direktorije s imenima koji imaju razmake a da vam ne dovedem pogrešku.
Kako koristiti datoteke i direktorije s razmacima
Da pokušam prostori za bijeg imena datoteka i direktorija u Linux terminalu, to možete učiniti na ove načine:
- Uključujući "" (dvostruki navodniki) u dijelu puta gdje postoje razmaci ili u cijelom. Na primjer:
cd "nombre con espacio"/
- Upotreba znaka \ ispred svakog razmaka. Na primjer:
nano nombre\ con\ espacio.txt
Na ove načine hoćete zaobići ove dosadne prostore. Sada, kako ne biste morali ponovno koristiti ove opcije, što može biti nezgodnije, možete slijediti sljedeće korake...
Kako ukloniti razmake iz imena
Sada možete koristiti različite metode kako bi ti prostori imena zauvijek prestali predstavljati problem. Ako imate velik broj imena s razmacima, nije logično raditi ih jedno po jedno, ali možete automatizirati te zadatke da ukloniti ili zamijeniti razmake:
- Za to upotrijebite naredbu preimenuj. Na primjer, prva od ovih naredbi uklanja razmake iz svih .txt datoteka, dok druga uklanja razmake iz svih datoteka unutar trenutnog direktorija:
preimenuj 's/\s/_/g' ./*.txt
preimenuj 's/\s/_/g' ./*.*
- Koristite find da zamijenite sva imena koja imaju razmake, zamjenjujući ih s _. Na primjer, učinite to sa svim .txt datotekama trenutnog direktorija ili cijelog FS-a:
find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \; **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;