GNU/Linux >> Znalost Linux >  >> Linux

Vysvětlete možnosti příkazu Readlink?

Může mi někdo prosím vysvětlit následující možnosti readlink příkaz v jednoduchém jazyce:

   -f, --canonicalize
      canonicalize  by  following  every symlink in every component of
      the given name recursively; all  but  the  last  component  must
      exist

   -e, --canonicalize-existing
      canonicalize  by  following  every symlink in every component of
      the given name recursively, all components must exist

   -m, --canonicalize-missing
      canonicalize by following every symlink in  every  component  of
      the  given  name recursively, without requirements on components
      existence

Přijatá odpověď:

Myslím, že je to docela samovysvětlující, takže vlastně neznám tu část, která vám zní nejednoznačně...
Podívejme se na příklad:

–kanonizovat

$ mkdir /tmp/realdir
$ mkdir /tmp/subdir
$ ln -s /tmp/realdir /tmp/subdir/link
$ cd /tmp

$ readlink -f ./subdir/link/nonexistentdir/
/tmp/realdir/nonexistentdir

$ readlink -f ./subdir/link/nonexistentfile.txt
/tmp/realdir/nonexistentfile.txt

Ať jsou možnosti jakékoli, readlink will:
– přeloží relativní cestu na absolutní cestu
– přeloží název symbolického odkazu na skutečnou cestu

A jak můžete vidět výše, pomocí -f , readlink je jedno, jestli poslední část této cesty (zde nonexistentfile.txt ) existuje nebo ne.

Pokud jiná část této cesty neexistuje, readlink nevypíše nic a bude mít návratový kód jiný než 0 (což znamená, že došlo k chybě). Viz:

$ readlink -f /tmp/fakedir/foo.txt
$ echo $?
1

–canonicalize-existing

Pokud zkusíte totéž s -e :

$ readlink -e ./subdir/link
/tmp/realdir

$ readlink -e ./subdir/link/nonexistentfile.txt
$ echo $?
1

S -e , v případě, že některá z komponent cesty neexistuje, readlink nevypíše nic a bude mít návratový kód jiný než 0.

–canonicalize-missing

-m volba je opakem -e . Nebude proveden žádný test, který by zkontroloval, zda existují komponenty cesty:

$ readlink -m ./subdir/link/fakedir/fakefile
/tmp/realdir/fakedir/fakefile

$ ln -s /nonexistent /tmp/subdir/brokenlink

$ readlink -m ./subdir/brokenlink/foobar
/nonexistent/foobar

Linux
  1. Úvod do příkazu alternatives v Linuxu

  2. Úvod do příkazu diff

  3. Praktický pohled na příkaz xargs

  1. Zvládněte příkaz Linux ls

  2. Užitečné možnosti ps

  3. Vyhledejte příkaz v Linuxu

  1. Možnosti příkazu grub-install

  2. Možnosti příkazu dpkg-reconfigure

  3. Možnosti příkazu ufw