Jak se vypořádat s prostory v názvech na Linux

Dec 14, 2024
Linux

Stejně jako většina operačních systémů podporuje Linux názvy souborů s prostory v nich. Použití těchto názvů souborů na příkazovém řádku však není vždy jednoduché. Zde je několik způsobů, jak zvládnout názvy souborů obsahujících prostory.

Skromný název souboru
Proč prostory v názvech souborů Linuxu jsou bolest
Jak citovat a uniknout prostorům
Jak opravit problém s prostorem na jeho zdroji
Rozšíření karet usnadňuje řešení prostorů
Jak používat názvy souborů s mezerami ve skriptech Bash
Rozmístěno, ale ne flaky

Skromný název souboru

Všechno uloženo na počítači pevný disk musí mít jméno. Bez názvu by žádné soubory neexistovaly. Všechny aplikace a démony, které jsou spuštěny při zavádění počítače a veškerý software, který používáte, musí být identifikovány a uloženy v souborovém systému. Tato identifikace je název souboru. “

Totéž platí pro soubory, které vytvoříte nebo nainstalujete. Všechny vaše dokumenty, obrázky a hudba potřebují názvy souborů. Bez názvů souborů nemůže existovat žádná z vašich digitálních aktiv. Protože názvy souborů jsou tak důležité, Linux se těžko snaží uvalit co nejméně pravidel o jejich složení.

Na Linuxu může název souboru obsahovat jakoukoli znak kromě předního lomítka “ / / “A nulový charakter, 0x00 . Nulový znak se používá k označení konec řetězce, takže jej nemůže být přítomen v samotném řetězci, nebo Linux by zkrátil název souboru v poloze nulové znaky. „ / / “Forward Slash se používá jako separátor v adresářových cestách.

Názvy souborů jsou citlivé na případ, a může být až 255 bajtů dlouhých , včetně nulové znaky. Cesty adresáře mohou být až 4096 bajtů, včetně nulové znaky. Všimněte si, že toto je jejich délka bajty , který se nemusí přímo vyrovnat postavy . Například 16-bitové znaky Unicode vezměte dva bajty.

Nadšenci retro-computování a ti, kteří mají dlouhé vzpomínky, budou vědět, že v prvních dnech osobních počítačů, Operační systém diskového systému společnosti Microsoft , Dos, byl necitlivý na případ a měl limit názvu osmi znaků plus tři postavy rozšíření .

Když jste jmenovali soubory, museli jste být velmi promyšlení a někdy kreativní. Pro srovnání, svoboda, kterou dnes máme, znamená, že můžeme pojmenovat soubory, co chceme, s malým přemýšlením na cokoli jiného než popis, který pro tento soubor vytváříme.

Ale s názvy souborů, co nás nejčastěji zakopne, nejsou postavy, které píšeme, jsou to mezery mezi nimi.

Proč prostory v názvech souborů Linuxu jsou bolest

Shells, jako je Bash, budou interpretovat řetězec slov oddělených prostorem jako individuální argumenty příkazu, nikoli jediný argument. Zde je příklad, použití dotek na Vytvořte nový soubor nazývá se „můj nový file.txt“.

Jak můžeme vidět, ls Ukazuje nám, že jsou vytvořeny tři soubory, jeden zvaný „můj“, druhý nazvaný „nový“ a jeden další nazvaný „file.txt“.

Všimněte si, že dotek nestěžoval se ani nehodil chybu. Provádí to, co si myslí, že to žádáme. Takže nás tiše vrací na příkazový řádek. Pokud nejsme motivováni ke kontrole, nebudeme vědět, že se věci podle plánu nedařilo.

Abychom vytvořili soubor, který jsme chtěli, musíme citovat nebo uniknout.

Jak citovat a uniknout prostorům

Pokud citujeme celý název souboru, dotek Ví, že je třeba zacházet s citovaným textem jako s jediným argumentem.

Tentokrát dostaneme jediný soubor, který očekáváme.

Můžeme získat stejný výsledek, pokud použijeme znak backslash “ \ "Uniknout prostorům." Tím, že „uniknou“ prostory, které se s nimi nezacházejí jako s zvláštními postavami - to je, separátory argumentů - jsou považovány za prosté staré prostory.

Funguje to, ale únikové prostory způsobují, že psaní názvů názvů jsou pomalejší a náchylné k chybám. Věci mohou být opravdu ošklivé, pokud máte také názvy adresářů s prostory.

Tento příkaz zkopíruje jeden textový soubor z adresáře s názvem „Dir One“ do adresáře s názvem „Dir Two“ a kopii uloží jako soubor Bak. A je to poměrně jednoduchý příklad.

Jak opravit problém s prostorem na jeho zdroji

Pokud jsou to vaše vlastní soubory, můžete přijmout politické rozhodnutí nikdy nepoužívat prostory a vytvořit (nebo Obrovský přejmenování ) takové názvy souborů.

Je pravda, že je to robustní řešení, ale je to stále ošklivé. Existují lepší možnosti, například použití pomlček “ - “Nebo podtrhuje“ _ "Oddělit vaše slova."

Oba to problém vynechají a jsou čitelné. Pokud nechcete přidat další znaky do svých názvů souborů, můžete použít Camelcase Aby vaše názvy souborů byly čitelné, takto:

Rozšíření karet usnadňuje řešení prostorů

Přijetí konvence pojmenování a držení se na ni pomůže samozřejmě, pouze pokud jednáte o své vlastní soubory. Soubory, které pocházejí odkudkoli jinde, je nepravděpodobné, že by se řídily vaší přijaté pojmenovací konvenci.

Pro nás můžete použít rozšíření karty, která vám pomůže přesně „vyplňovat“ názvy souborů. Řekněme, že chceme vymazat Soubor Bak, který jsme vytvořili v „Dir Two“, pomocí rm .

Začneme psaním „rm dir“, protože používáme rm Příkaz a víme, že název adresáře začíná „dir“.

Stisknutím klávesy „Tab“ způsobí, že Bash skenuje zápasy v aktuálním adresáři.

Existují dva adresáře, které začínají „dir“, a v obou případech je další znakem prostor. Bash tedy přidává znak backslash “ \ "A prostor." Bash pak čeká, až poskytneme další postavu. Potřebuje další znak, aby rozlišoval mezi dvěma možnými zápasy v tomto adresáři.

Zadáme „T“, pro „dva“ a poté znovu stiskneme „Tab“.

Bash pro nás dokončí název adresáře a čeká, než zadáme začátek souboru názvu.

V tomto adresáři máme pouze jeden soubor, takže zadávání prvního písmene názvu souboru „M“ je dost, aby Bash věděl, který soubor chceme použít. Zadání „m“ a stisknutí „Tab“ pro nás dokončí název souboru a „Enter“ spustí celý příkaz.

Rozšiřování tabulek usnadňuje zajištění toho, abyste dostali názvy souborů správně, a také zrychluje navigaci a psaní na příkazovém řádku obecně.

PŘÍBUZNÝ: Použijte dokončení karty k rychlejšímu zadání příkazů v jakémkoli operačním systému

Jak používat názvy souborů s mezerami ve skriptech Bash

Není divu, že Skripty mít přesně stejné problémy s prostory v názvech jako příkazový řádek. Pokud předáváte název souboru jako proměnné, ujistěte se, že citujete název proměnné.

Tento malý skript kontroluje aktuální adresář pro soubory, které odpovídají vzorci souborů „*.txt“, a ukládá je do proměnné nazvané file_list . A pro smyčka se používá k provedení jednoduché akce na každé z nich.

Zkopírujte tento text do editoru a uložte jej do souboru s názvem „Files.sh“. Pak použijte The Chmod příkaz Aby byl spustitelný.

V tomto adresáři máme nějaké soubory. Jeden má jednoduchý název souboru a další dva podtrhují “ _ “Nebo pomlčky“ - "Místo prostorů." To je to, co vidíme, když spustíme skript.

Zdá se, že to funguje pěkně. Pojďme však změnit soubory v adresáři pro soubory, které obsahují prostory v jejich jménech.

Každé slovo v každém názvu souboru je zpracováno, jako by to byl samostatně název souboru, a tak skript selže. Ale vše, co musíme udělat, aby se skript zpracovával v názvech, je citovat $ soubor proměnná uvnitř pro smyčka.

Všimněte si, že značka dolaru „ $ “Je uvnitř citací." Tuto změnu jsme provedli a uložili ji do souboru skriptu „files.sh“. Tentokrát jsou názvy souborů zpracovány správně.

PŘÍBUZNÝ: Jak zpracovat řádek souboru po řádku ve skriptu Linux Bash

Rozmístěno, ale ne flaky

Vyhýbání se prostorům ve svých vlastních názvech vás zavede jen tak daleko. Je nevyhnutelné, že narazíte na soubory z jiných zdrojů se jmény, které obsahují prostory. Naštěstí, pokud potřebujete tyto soubory zpracovat na příkazovém řádku nebo ve skriptech, existují snadné to.


Linux - Nejoblíbenější články

Jak se dostat do grafické Device Manager for Linux

Linux Mar 17, 2025

Afrika Studio / Shutterstock.com Existuje nekonečný Utility příkazového řádku Linuxu, které zobrazují podrobnosti o hardwaru počítače . ..


Jak používat strace k monitorování linuxového systému požaduje

Linux Jun 23, 2025

FATMAWATI ACHMAD ZAENURI / Shutterstock.com Programy Linuxu se ptají jádro udělat nějaké věci pro ně. . \ T kremný Příkaz odh..


Co je nového v základní OS 6 „Odin“

Linux Aug 14, 2025

Elementární, Inc. Existují mnoho distribucí Linuxu (Distroz), že lidé tvrdí, jsou dobrými náhradami pro Windows nebo MacOS. Ale existuje jen málo, ..


Jaké jsou nevýhody přechodu na Linux?

Linux Oct 27, 2025

Larry Ewing a GIMP Linux Evangelists (jako já) jsou rychlé poukázat na mnoho výhod přepnutí z Windows a MACOS. Ale žádný operační systém není do..


Jak spustit Android aplikace na Linuxu

Linux Oct 19, 2025

quietbits / Shutterstock.com Někdy chtěli spustit aplikaci pro Android na Linux, ale nechtěl, aby si s ladění mosty, vývojová prostředí, nebo sideload..


Jak aktualizovat Fedora Linux

Linux Nov 10, 2024

Takže jste se konečně stáhli a nainstalovali Fedora Linux, ale nyní můžete být zvědaví, jak si udržet váš systém aktuální? Naštěstí, Fedora vám několik metod pro aktua..


Jak zabít proces Linux podle čísla portu

Linux Oct 4, 2025

Chcete -li zabít proces Linux, potřebujete jeho ID nebo jeho název. Pokud vše, co víte, je port, který používá, můžete jej stále zabít? Ano, několika různými způsoby. Zab..


Jak najít PID procesu Linux s Pidof nebo PGREP

Linux Nov 15, 2024

Práce s procesem Linux často znamená znát jeho ID procesu nebo PID. Je to jedinečné číslo, které je dáno každému kusu běžícího softwaru. Zde jsou dva způsoby, jak zjistit, co t..


Kategorie