Velikokrat boste naleteli na imena datotek in imenikov, ki imajo vmesne presledke v svojih imenih, zlasti tiste, ki prihajajo iz sistema Windows. Ti presledki so pogosto nadležni, zlasti pri delu iz lupine, saj jih morate identificirati, da se ne obravnavajo kot ločena imena ukazov ali možnosti. Zato bomo v tej vadnici videli nekaj načinov samodejno odstrani presledke.
Poleg tega bomo videli tudi, kako jih je mogoče uporabiti datoteke ali imenike z imeni, ki imajo presledke ne da bi ti izpostavil napako.
Kako uporabljati datoteke in imenike s presledki
Da poskusim prostori za pobeg imen datotek in imenikov v terminalu Linux, lahko to storite na te načine:
- Vključuje "" (dvojni narekovaji) v delu poti, kjer so presledki, ali v celoti. Na primer:
cd "nombre con espacio"/
- Uporaba znaka \ pred vsakim presledkom. Na primer:
nano nombre\ con\ espacio.txt
Na te načine boste obidete te nadležne prostore. Zdaj, da vam te možnosti ne bi bilo treba znova uporabljati, kar je lahko bolj neprijetno, lahko sledite naslednjim korakom...
Kako odstraniti presledke iz imen
Zdaj lahko uporabite različne metode, da ti imenski prostori za vedno prenehajo predstavljati težavo. Če imate veliko število imen s presledki, jih ni logično izvajati eno za drugim, vendar lahko ta opravila avtomatizirate, da odstranite ali zamenjajte presledke:
- Za to uporabite ukaz za preimenovanje. Na primer, prvi od teh ukazov odstrani presledke iz vseh datotek .txt, medtem ko drugi odstrani presledke iz vseh datotek v trenutnem imeniku:
preimenuj 's/\s/_/g' ./*.txt
preimenuj 's/\s/_/g' ./*.*
- Uporabite find, da zamenjate vsa imena s presledki in jih nadomestite z _. Na primer, naredite to z vsemi .txt trenutnega imenika ali celotnega FS:
find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \; **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;