GNU/Linux >> Znalost Linux >  >> Linux

Absolutní / Kanonické / Relativní cesty?

Jaký je rozdíl mezi absolutními / kanonickými / relativními cestami?

Myslím, že absolutní začíná / . Může obsahovat /../? ?

Liší se kanonická cesta od absolutní cesty tím, že nemůže obsahovat /../ ?

Je foo relativní cestu?

posix canonical path na Googlu moc se neobjevilo... Jaké jsou odkazy POSIX pro tyto výrazy?

Přijatá odpověď:

POSIX definuje „absolutní název cesty“ následovně:

Cesta začínající jedním nebo více než dvěma znaky

a „relativní název cesty“ takto:

Cesta nezačíná znakem .

To je vše pro relativní a absolutní cesty.

Kanonické cesty nejsou v POSIX definovány, ale termín obvykle odkazuje na srovnatelné cesty, tj. pokud použijete dvě cesty k objektu systému souborů a převedete je na kanonickou formu, výsledek by měl být shodný tehdy a pouze tehdy, když jsou dva objekty systému souborů totožné. To zahrnuje odstranění „..“, jak uvádíte, ale také to znamená vyřešení symbolických odkazů; takže kanonická cesta by mohla být definována jako

Cesta, jejíž komponenty jsou všechny skutečné adresáře nebo soubory, kromě „.“ a „..“ a jejichž lomítka se neopakují

Z hlediska POSIX je kanonická cesta v podstatě vyřešená cesta (pokud souhlasíte s tím, že kanonická cesta může být určena pouze pro objekty systému souborů, které existují).

Všimněte si, že to funguje pouze proto, že pevně propojené adresáře nejsou povoleny…

Takže abych odpověděl na vaše otázky:

  • absolutní cesta může obsahovat /../;
  • kanonická cesta nesmí obsahovat /../ , ani nemůže obsahovat /./ , // (s výjimkou pravděpodobně na první pozici) nebo symbolické odkazy;
  • foo je relativní cesta.

(Pedanticky jsou to všechna cestajména , nejen cesty.)


Linux
  1. Co je to Canonical tag?

  2. Převést absolutní symbolický odkaz na relativní symbolický odkaz pomocí jednoduchého příkazu Linux?

  3. Výchozí cesty Nginx a Apache

  1. Rozdíl mezi absolutní a relativní cestou v Linuxu

  2. Jak vyloučím absolutní cesty pro tar?

  3. Jak přesunu relativní symbolický odkaz?

  1. Odstraňte nadbytečné cesty z proměnné $PATH

  2. Jak zobrazit úplnou absolutní cestu symbolického odkazu

  3. Tar adresář, ale neukládejte úplné absolutní cesty do archivu