Pri mnohých príležitostiach sa stretnete s názvami súborov a adresármi, ktoré majú vo svojich názvoch medzery, najmä tie, ktoré pochádzajú zo systému Windows. Tieto medzery sú často nepríjemné, najmä pri práci z prostredia shell, pretože ich musíte identifikovať, aby sa s nimi nezaobchádzalo ako so samostatnými názvami alebo voľbami príkazov. Preto v tomto návode uvidíme niekoľko spôsobov automaticky odstrániť medzery.
Okrem toho uvidíme, ako sa dajú použiť súbory alebo adresáre s názvami s medzerami bez toho, aby vám vyhodilo chybu.
Ako používať súbory a adresáre s medzerami
Skúsiť únikové priestory názvov súborov a adresárov v termináli Linux, môžete to urobiť týmito spôsobmi:
- Vrátane "" (dvojitých úvodzoviek) v časti cesty, kde sú medzery, alebo v celej ceste. Napríklad:
cd "nombre con espacio"/
- Použitie znaku \ pred každou medzerou. Napríklad:
nano nombre\ con\ espacio.txt
Týmito spôsobmi budete obísť tieto nepríjemné miesta. Teraz, aby ste nemuseli znova používať tieto možnosti, ktoré môžu byť nepohodlnejšie, môžete postupovať podľa týchto krokov…
Ako odstrániť medzery z mien
Teraz môžete použiť rôzne metódy, aby tieto menné priestory prestali byť navždy problémom. Ak máte veľký počet mien s medzerami, nie je logické robiť ich jeden po druhom, ale tieto úlohy môžete automatizovať odstráňte alebo vymeňte medzery:
- Použite na to príkaz premenovať. Napríklad prvý z týchto príkazov odstráni medzery zo všetkých súborov .txt, zatiaľ čo druhý odstráni medzery zo všetkých súborov v aktuálnom adresári:
premenovať 's/\s/_/g' ./*.txt
premenovať 's/\s/_/g' ./*.*
- Pomocou funkcie find nahraďte všetky názvy, ktoré obsahujú medzery, a nahraďte ich znakom _. Urobte to napríklad so všetkými súbormi .txt aktuálneho adresára alebo celého FS:
find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \; **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;