S názvami súborov a priečinkov sa stretávame veľmi pravidelne. Vo väčšine prípadov názov súboru/priečinku súvisí s obsahom súboru/priečinku a začína číslom a znakmi.
Alfa-numerické názvy súborov sú celkom bežné a veľmi často používané, ale nie je to tak, keď sa musíme zaoberať názvom súboru/priečinku, ktorý má v sebe špeciálne znaky.
Poznámka: Môžeme mať súbory akéhokoľvek typu, ale pre jednoduchosť a jednoduchú implementáciu sa budeme zaoberať textovými súbormi (.TXT), v celom článku.
Obsah
Príklady najbežnejších názvov súborov sú:
abc.txt. avi.txt. debian.txt...
Príklady číselných názvov súborov sú:
121.txt. 3221.txt. 674659.txt...
Príklady alfanumerických názvov súborov sú:
napr.84235.txt. 3kf43nl2.txt. 2323ddw.txt...
Príklady názvov súborov, ktoré majú špeciálny charakter a nie sú veľmi bežné:
#232.txt. #bkf.txt. #bjsd3469.txt. #121nkfd.txt. -2232.txt. -fbjdew.txt. -gi32kj.txt. --321.txt. --bk34.txt...
Jedna z najzreteľnejších otázok je – kto preboha vytvára/narába s názvom súborov/priečinkov s hash (#)
, bodkočiarka (;)
, pomlčka (-)
alebo akýkoľvek iný špeciálny znak.
Súhlasím s vami, že takéto názvy súborov nie sú bežné, ale váš shell by sa nemal rozbiť/vzdať, keď sa musíte vysporiadať s takýmito názvami súborov. Technicky povedané, každá vec, či už ide o priečinok, ovládač alebo čokoľvek iné zaobchádzať ako so súborom v Linuxe.
V Linuxe názvy súborov, ktoré začínajú pomlčkou ("-")
sa často nazývajú „prerušované názvy súborov“ alebo „názvy súborov s pomlčkou“. Tieto názvy súborov môžu niekedy spôsobiť problémy pri práci s nimi, pretože úvodná pomlčka môže byť nesprávne interpretovaná ako možnosť alebo označená pomocnými programami príkazového riadka.
Ak chcete v systéme Linux pracovať s prerušovanými názvami súborov, vytvorte súbor ktorá začína pomlčkou (-)
, povedať -abx.txt pomocou dotykový príkaz.
$ touch -abc.txt.
Ukážkový výstup:
dotyk: neplatná možnosť -- 'b' Ak chcete získať ďalšie informácie, skúste použiť „dotyk --help“.
Dôvodom vyššie uvedenej chyby je, že shell interpretuje čokoľvek po pomlčke (-)
, ako možnosť a očividne takáto možnosť neexistuje, preto došlo k chybe.
Na vyriešenie takejto chyby musíme povedať shellu bash, aby neinterpretoval nič za špeciálnym znakom (tu pomlčka), ako možnosť.
Existujú dva spôsoby, ako vyriešiť túto chybu:
$ touch -- -abc.txt [Možnosť #1] $ dotyk ./-abc.txt [Možnosť#2]
Takto vytvorený súbor môžete overiť oboma vyššie uvedenými spôsobmi spustením príkazov ls alebo ls -l pre dlhý zoznam.
$ ls -l celkom 0. .rw-rw-r-- tecmint tecmint 0 B Ut 20. jún 10:32:43 2023 -abc.txt
Ak chcete upraviť súbor s prerušovaným názvom súboru, môžete použiť rôzne textové editory k dispozícii. Tu je príklad použitia nano textový editor:
$ nano -- -abc.txt alebo $ nano ./-abc.txt
Môžete nahradiť nano s akýmkoľvek iným editorom podľa vášho výberu, napríklad použite editor vim ako je znázornené:
$ vim -- -abc.txt alebo $ vim ./-abc.txt
Ak chcete premenovať súbor s prerušovaným názvom súboru, môžete použiť príkaz mv ako je znázornené.
Ak chcete napríklad premenovať súbor s názvom „-abc.txt“ až “-a.txt“, použili by ste:
$ mv -- -abc.txt -a.txt. ALEBO. mv ./-abc.txt ./-a.txt.
Ak chcete odstrániť súbor s prerušovaným názvom súboru, môžete použiť príkaz rm ako je znázornené.
$ rm -- -abc.txt. ALEBO. $ rm ./-abc.txt
Ak máte v priečinku, ktorého názov obsahuje pomlčku, veľa súborov a chcete ich všetky naraz odstrániť, postupujte takto:
$ rm ./-*
Rovnaké pravidlo, ako je uvedené vyššie, platí pre ľubovoľný počet pomlčiek v názve súboru a ich výskyt. Viz., -a-b-c.txt, ab-c.txt, abc-.txt, atď.
Rovnaké pravidlo, ako je uvedené vyššie, platí pre názov priečinka s ľubovoľným počtom pomlčiek a ich výskyt, s výnimkou skutočnosti, že na odstránenie priečinka musíte použiť „rm -rf‘ ako:
$ rm -rf -- -abc. alebo. $ rm -rf ./-abc.
V Linuxe, "#"
znak nie je v názvoch súborov obmedzený ani vyhradený na žiadny konkrétny účel. Môžete použiť "#"
znak ako ktorýkoľvek iný alfanumerický znak v názve súboru.
Stojí však za zmienku, že niektoré špeciálne postavy, vrátane "#"
, majú osobitný význam v určitých kontextoch alebo pri použití s špecifické príkazy alebo komunálne služby.
Napríklad, "#"
znak sa bežne používa v skriptovaní shellu na označenie komentárov. Ak píšete skript shellu a chcete zahrnúť "#"
znak v názve súboru, odporúča sa správne escapovať alebo citovať názov súboru, aby ste sa vyhli neúmyselnej interpretácii ako komentára.
Tu je príklad vytvorenia súboru pomocou "#"
znak v jeho názve:
$ touch #abc.txt.
Ukážkový výstup:
dotyk: chýbajúci operand súboru. Ak chcete získať ďalšie informácie, skúste použiť „dotyk --help“.
Dôvodom vyššie uvedenej chyby je interpretácia bash #abc.txt ako komentár, a preto ho ignorujem. Takže dotykový príkaz bol odovzdaný bez operandu súboru, a preto došlo k chybe.
Ak chcete vyriešiť takúto chybu, môžete požiadať bash, aby neinterpretoval # ako komentár.
$ touch ./#abc.txt. alebo. $ dotyk '#abc.txt'
a overte práve vytvorený súbor ako:
$ ls -l .rw-rw-r-- tecmint tecmint 0 B Ut 20. jún 11:11:00 2023 #abc.txt
Teraz vytvorte súbor, ktorého názov obsahuje #
kdekoľvek okrem žobrania.
$ touch ./a#bc.txt. $ touch ./abc#.txt alebo. $ dotknite sa „a#bc.txt“ $ dotknite sa „abc#.txt“
Čo sa stane, keď vytvoríte dva súbory (napr a a #bc) naraz:
$ touch a.txt #bc.txt.
Je zrejmé, že z vyššie uvedeného príkladu vytvoril iba súbor „a„a súbor“#bc‘ bol ignorovaný. Na úspešné vykonanie vyššie uvedenej situácie môžeme urobiť,
$ touch a.txt ./#bc.txt. alebo. $ touch a.txt '#bc.txt'
Nakoniec overte práve vytvorený súbor pomocou ls príkaz.
$ ls -l.
Ak chcete premenovať hash súbor, môžete použiť mv príkaz podľa obrázka.
$ mv ./#bc.txt ./#cd.txt. alebo. $ mv '#bc.txt' '#cd.txt'
Ak chcete skopírovať súbor hash, môžete použiť príkaz cp ako je znázornené.
$ cp ./#cd.txt ./#de.txt. alebo. $ cp '#cd.txt' '#de.txt'
Ak chcete upraviť súbor hash, môžete použiť nano alebo vim editor, ako je znázornené.
$ vi ./#cd.txt. alebo. $ vi '#cd.txt'
$ nano ./#cd.txt. alebo. $ nano '#cd.txt'
Ak chcete odstrániť hash súbor, môžete použiť rm príkaz podľa obrázka.
$ rm ./#bc.txt alebo. $ rm '#bc.txt'
Ak chcete odstrániť všetky súbory, ktoré majú hash (#) v názve súboru môžete použiť:
$ rm ./#*
V prípade, že si nie ste vedomí, bodkočiarka funguje ako oddeľovač príkazov BASH a možno aj ďalšia šupka. Bodkočiarka vám umožňuje vykonať niekoľko príkazov naraz a funguje ako oddeľovač. Stretli ste sa už s tým, že nejaký názov súboru má v sebe bodkočiarku? Ak nie tu, budete.
Vytvorte súbor s bodkočiarkou.
$ touch ;abc.txt.
Ukážkový výstup:
dotyk: chýbajúci operand súboru. Ak chcete získať ďalšie informácie, skúste použiť „dotyk --help“. bash: abc.txt: príkaz nenájdený.
Dôvodom vyššie uvedenej chyby je, že keď spustíte vyššie uvedený príkaz BASH vykladá dotyk ako príkaz, ale nenašiel žiadny súborový operand pred bodkočiarkou, a preto hlási chybu.
Hlási tiež ďalšiu chybu, že „abc.txt‘ príkaz sa nenašiel, len preto, že za bodkočiarkou BASH očakával ďalší príkaz a „abc.txt‘, nie je príkaz.
Ak chcete vyriešiť takúto chybu, povedzte BASH neinterpretovať bodkočiarku ako oddeľovač príkazov ako:
$ touch ./';abc.txt' alebo. $ touch ';abc.txt'
Poznámka: Názov súboru sme uzavreli jednou úvodzovkou ''
. Hovorí to BASHovi ;
je súčasťou názvu súboru a nie oddeľovačom príkazov.
Zvyšok akcie (t. j. kopírovanie, presúvanie, mazanie) so súborom a priečinkom, ktorý má v názve bodkočiarku, možno vykonať priamo tak, že názov uzatvoríte do jednej úvodzovky.
V Linuxe môžu názvy súborov obsahovať väčšinu špeciálnych znakov, vrátane medzier, bodiek, pomlčiek, podčiarkovníkov a dokonca aj symbolov ako napr. @
, !
, $
, a %
.
Tu je zoznam špeciálnych znakov, ktoré by ste mali používať s opatrnosťou alebo zvážiť ich použitie v názvoch súborov:
Ak chcete vytvoriť znamienko plus (+)
súbor v systéme Linux, môžete použiť súbor dotyk príkaz spolu s názvom súboru uzavretým v jednoduchých úvodzovkách.
$ dotyk '+ravi.txt'
Na vytvorenie znaku dolára ($)
súbor v systéme Linux, môžete použiť súbor dotyk príkaz spolu s názvom súboru uzavretým v jednoduchých úvodzovkách.
$ dotyk '$ravi.txt'
Ak chcete vytvoriť znak percenta (%)
súbor v systéme Linux, môžete použiť.
$ dotyk '%ravi.txt'
Na vytvorenie znaku hviezdičky (*)
súbor v systéme Linux, môžete použiť.
$ touch '*ravi.txt'
Poznámka: Keď musíte odstrániť súbor, ktorý začína na *
, na odstránenie takýchto súborov nikdy nepoužívajte nasledujúce príkazy.
$ rm * alebo. $ rm -rf *
Namiesto toho použite,
$ rm ./*.txt.
Stačí uzatvoriť názov súboru do jednoduchých úvodzoviek a ostatné veci sú rovnaké.
$ dotyk '!ravi.txt'
Nič extra, zaobchádzajte s názvom súboru @
podpísať ako normálny súbor.
$ dotknite sa '@ravi.txt'
Nevyžaduje sa žiadna ďalšia pozornosť, použite súbor s ^
v názve súboru ako normálny súbor.
$ touch '^ravi.txt'
Názov súboru by mal byť uzavretý v jednoduchých úvodzovkách a môžete začať.
$ dotknite sa '&ravi.txt'
Ak má názov súboru zátvorky, musíte názov súboru uzavrieť jednoduchými úvodzovkami.
$ touch '(ravi.txt)'
Nie je potrebná žiadna extra starostlivosť. Berte to ako ďalší súbor.
$ touch {ravi.txt}
Názov súboru so šípkami musí byť uzavretý v jednoduchých úvodzovkách.
$ dotyk ''
S názvami súborov s hranatými zátvorkami zaobchádzajte ako s bežnými súbormi a nemusíte sa o to nejako zvlášť starať.
$ touch [ravi.txt]
Sú veľmi bežné a nevyžadujú nič extra. Urobte to, čo by ste urobili s normálnym súborom.
$ touch _ravi.txt.
Znamienko rovnosti nemení nič, môžete ho použiť ako normálny súbor.
$ touch =ravi.txt.
Opačná lomka hovorí shellu, aby ignoroval nasledujúci znak. Názov súboru musíte uzavrieť do jednoduchých úvodzoviek, ako sme to urobili v prípade bodkočiarky. Ostatné veci sú jednoduché.
$ dotknite sa '\ravi.txt'
Nemôžete vytvoriť súbor, ktorého názov obsahuje lomku (/)
, kým váš súborový systém nebude mať chybu. Neexistuje spôsob, ako uniknúť lomke dopredu.
Ak teda dokážete vytvoriť súbor ako napr „/ravi.txt“ alebo „b/c.txt“ potom buď má váš súborový systém chybu, alebo máte podporu Unicode, ktorá vám umožňuje vytvoriť súbor s lomkou. V tomto prípade lomka nie je skutočná lomka, ale znak Unicode, ktorý vyzerá ako lomka.
Opäť príklad, kedy nemusíte robiť žiadne špeciálne pokusy. S názvom súboru s otáznikom možno zaobchádzať najvšeobecnejším spôsobom.
$ dotyk '?ravi.txt'
Súbory začínajúce bodkou (.)
sú v Linuxe veľmi špeciálne a nazývajú sa dotfiles. Sú to skryté súbory vo všeobecnosti konfiguračné alebo systémové súbory. Musíte použiť prepínač "-a„alebo“-A“s ls príkaz na zobrazenie takýchto súborov.
Vytváranie, úprava, premenovávanie a odstraňovanie takýchto súborov je jednoduché.
$ dotknite sa '.ravi.txt'
Poznámka: V Linuxe môžete mať toľko bodiek (.)
ako potrebujete v názve súboru. Na rozdiel od iných systémových bodiek v súbore názvy neznamenajú oddeľovanie mien a prípon. Môžete vytvoriť súbor s viacerými bodkami ako:
$ touch 1.2.3.4.5.6.7.8.9.10.txt.
a skontrolujte to ako:
$ ls -l celkom 0. -rw-r--r-- 1 avi avi 0. jún 8 14:32 1.2.3.4.5.6.7.8.9.10.txt
V názve súboru môžete mať čiarku, koľko chcete a nepotrebujete nič navyše. Urobte to normálnym spôsobom, ako jednoduchý názov súboru.
$ touch ',ravi.txt' alebo. $ touch ',ravi,.txt'
V názve súboru môžete mať dvojbodku, koľko chcete a nepotrebujete nič navyše. Urobte to normálnym spôsobom, ako jednoduchý názov súboru.
$ touch :12.txt. alebo. $ touch ':ravi:.txt'
Aby sme mali v názve súboru úvodzovky, musíme použiť pravidlo výmeny. To znamená, že ak potrebujete mať v názve súboru jednoduché úvodzovky, uzatvorte názov súboru do dvojitých úvodzoviek a ak potrebujete mať v názve súboru dvojité úvodzovky, uzatvorte ho do jednoduchých úvodzoviek.
$ touch "15'.txt" a $ touch 'ravi.txt'
Niektorí redaktori v Linuxe majú radi emacs vytvorte záložný súbor upravovaného súboru. Záložný súbor má názov pôvodného súboru plus vlnovku na konci názvu súboru. Súbor, ktorého názov obsahuje vlnovku, môžete mať na ľubovoľnom mieste jednoducho ako:
$ dotknite sa '~ravi.txt' alebo. $touch 'anusha~.txt'
Vytvorte súbor s názvom, ktorý má medzeru medzi znakmi/slová, povedzte „ahoj volám sa ravi.txt”.
Nie je dobrý nápad mať názvy súborov s medzerami a ak potrebujete odlíšiť čitateľný názov, mali by ste použiť podčiarkovník alebo pomlčku. Ak však musíte vytvoriť takýto súbor, musíte použiť spätnú lomku, ktorá ignoruje nasledujúci znak. Aby sme vytvorili vyššie uvedený súbor, musíme to urobiť týmto spôsobom..
$ dotkni sa ahoj\ moje\ meno\ je\ ravi.txt ahoj volám sa ravi.txt
Snažil som sa pokryť všetky scenáre, s ktorými sa môžete stretnúť. Väčšina z vyššie uvedených implementácií je výslovne pre BASH Shell a nemusí fungovať v iných shelloch.
Ak máte pocit, že mi niečo uniklo (to je veľmi bežné a ľudská prirodzenosť), môžete svoj návrh zahrnúť do komentárov nižšie. Buďte v spojení a pokračujte v komentároch. Zostaňte naladení a v spojení! Lajkujte a zdieľajte nás a pomôžte nám šíriť sa ďalej!