GNU/Linux >> Znalost Linux >  >> Linux

Navigace v souborovém systému pomocí relativních cest na příkazovém řádku

Pokud jste na cestě do práce, ale nejprve se zastavíte v lahůdkářství na snídani, nevrátíte se po snídani domů, abyste mohli svou cestu znovu zahájit. Místo toho budete pokračovat z místa, kde jste, protože rozumíte tomu, kde se vaše kancelář nachází vzhledem k vaší aktuální poloze. Procházení počítače je stejné. Pokud změníte svůj pracovní adresář v terminálu na podadresář, například Pictures , nemusíte nutně jít znovu domů, abyste se dostali do Dokumentů . Místo toho použijete příbuzný cesta.

Linuxový terminál

  • 7 nejlepších emulátorů terminálu pro Linux
  • 10 nástrojů příkazového řádku pro analýzu dat v systému Linux
  • Stáhnout nyní:SSH cheat sheet
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Výukové programy příkazového řádku systému Linux

Naopak absolutní cesty vždy začínají od začátku vašeho pevného disku. Že jste se dostali na začátek, poznáte podle jediného lomítka (/ ), po které není nic vlevo, protože kořenová úroveň vašeho disku je největší kontejner, který obsahuje všechny vaše složky a soubory. Z tohoto důvodu je cesta /home/seth (a jeho zkrácenou verzi ~ , i když to není tak jasné, protože postrádá lomítko úplně vlevo) je považován za absolutní cestu. Představuje základní úroveň vašeho pevného disku, která obsahuje domov adresář, který zase obsahuje seth (moje uživatelské jméno).

Vše, co začíná lomítkem, je absolutní cesta, což je digitální ekvivalent toho, že jdete 12 bloků zpět domů, abyste se dostali na místo, které je dva bloky od místa, kde se nyní nacházíte. Tato skutečnost však neznamená, že absolutní cesty jsou špatné. Existuje mnoho pádných důvodů, proč používat absolutní cesty, v neposlední řadě jejich jasnost. Pokud můžete navigovat svou jízdu z absolutních cest, použijte to jako vyhledávač. S automatickým dokončováním může být zadávání celé cesty stejně rychlé jako použití relativní cesty, zejména s automatickým dokončováním.

To znamená, že relativní cesty mohou být pohodlné a v některých případech životně důležité. Například si nikdy nemůžete být jisti absolutní cestou webového serveru. Pokud webový designér ví, že uchovávají webová písma v místním adresáři, a propojí se s těmito písmy na svém vývojářském notebooku pomocí absolutní cesty /home/webdev/Public/www.example.com/fonts , pak se všechny jejich odkazy přeruší, když je kód přenesen na /var/www/example.com/fonts na serveru.

Kromě toho je někdy opravdu rychlejší a snazší napsat cd ../Documents místo cd /home/seth/Documents .

Relativní cesty používají dvě řídicí sekvence:jedinou (. ) a dvojité (.. ) tečka. Jedna tečka znamená nehýbat se . Dvojitá tečka znamená udělejte jeden krok zpět . Tyto body fungují nejlépe, když jste trochu obeznámeni s tím, co máte na disku, a za předpokladu, že si dokážete představit odpovídající cesty.

Může pomoci představit si každý adresář jako místnost v domě. Například s vědomím, že máte domovský adresář, který obsahuje oba Obrázky a Dokumenty složky, můžete si každý podadresář představit jako krok vpřed z domova:

Chcete-li se dostat z jedné místnosti do druhé, musíte se vrátit do společné části pomocí kroku zpět ovládací sekvence a poté vpřed do druhé. Svou aktuální polohu můžete kdykoli zjistit pomocí pwd (tisk pracovního adresáře) příkaz:

$ pwd
/home/seth/Pictures
$ cd ../Documents
$ pwd
/home/seth/Documents

Pamatujte, že jedna tečka znamená nehýbejte se , a dělá přesně to:

$ pwd
/home/seth
$ cd .
$ pwd
/home/seth

Může se zdát zvláštní mít speciální příkaz představující stav beze změny, ale je to užitečně explicitní příkaz. Pokud byste například vytvořili vlastní aplikaci, která by vypsala obsah adresáře a uložila jej do svého domovského adresáře, pošetile aplikaci pojmenovala reboot , pak pokaždé, když použijete tuto vlastní aplikaci, budete chtít být opatrní, aby váš počítač věděl přesně který se restartuje příkaz k provedení.

Jedním ze způsobů, jak určit verzi, je poskytnout explicitní cestu k vaší vlastní a špatně pojmenované aplikaci. Jediná tečka posílí vaši touhu neodchýlit se od zamýšlené cesty, když už jste v adresáři:

$ pwd
/home/seth
$ ./reboot
Documents/     Downloads/
Music/         Pictures/
Public/        Spheniscidae/
Videos/        Yugolothae/

Jindy můžete zjistit potřebu specifikátoru jedné tečky, když nástroj ve výchozím nastavení nehledá argument v aktuálním adresáři. Například dnf příkaz předpokládá, že jakýkoli balíček, který mu řeknete k instalaci, je balíček, který potřebujete ke stažení z úložiště. Pokud chcete provést místní instalaci něčeho, co jste si již stáhli, můžete to nasměrovat na balíček v aktuálním adresáři jednou tečkou, takže dnf pracuje s ním místo toho, aby se ho snažil najít v úložišti:

$ sudo dnf install ./example.rpm

Někdy může být jedna tečka užitečná jako výplňový znak v cestách, u kterých očekáváte, že budou obsahovat několik úrovní. Vezměme si například webového vývojáře, který použil několik odkazů na font adresář, který byl kdysi tři kroky zpět. Nedávno však tento vývojář přesunul font do stejného adresáře jako jejich HTML. Pokud vývojář nenahradí všechny instance ../../../fonts pomocí ./././fonts , jejich web přestane fungovat.

Poznámka: V případě tohoto příkladu změna ../../../fonts na ./fonts by fungovalo, ale pro účely tohoto příkladu předpokládejme, že by to narušilo skript, který očekává, že uvidí tři úrovně před fonty adresář.

Relativní cesty mohou být zpočátku matoucí, takže se při navigaci v počítači držte absolutních cest, dokud nebudete spokojeni s konceptem relativity. Mnoho lidí je považuje za užitečné, zatímco jiní je nepoužívají. Všechno je relativní.


Linux
  1. Zkopírujte a vložte na příkazový řádek Linuxu pomocí xclip

  2. Práce s datovými toky na příkazovém řádku Linuxu

  3. Práce s rourami na příkazovém řádku Linuxu

  1. Seřadit pomocí řazení na příkazovém řádku

  2. Multi-tasking na příkazovém řádku s screenie

  3. Malý trik:pomocí shuf vyberte náhodný soubor nebo řádek v souboru

  1. Spuštění spustitelného souboru v cestě se stejným názvem jako existující funkce?

  2. Monitorování úrovně mikrofonu pomocí nástroje příkazového řádku v Linuxu

  3. Tisk z příkazového řádku pomocí LibreOffice, příkazy lpr?