GNU/Linux >> Linux Esercitazione >  >> Linux

Spiega le opzioni del comando Readlink?

Qualcuno può spiegarmi le seguenti opzioni di readlink comando in linguaggio semplice:

   -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

Risposta accettata:

Penso che sia abbastanza autoesplicativo, quindi non conosco davvero la parte che ti suona ambigua...
Vediamo con un esempio:

–canonicizzare

$ 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

Qualunque siano le opzioni, readlink will:
– tradurrà il percorso relativo in percorso assoluto
– tradurrà il nome del collegamento simbolico nel percorso reale

E come puoi vedere sopra, con -f , readlink non importa se l'ultima parte di questo percorso (qui nonexistentfile.txt ) esiste o no.

Se un'altra parte di questo percorso non esiste, readlink non produrrà nulla e avrà un codice di ritorno diverso da 0 (il che significa che si è verificato un errore). Vedi:

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

–canonizzare-esistente

Se provi lo stesso con -e :

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

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

Con -e , nel caso in cui uno qualsiasi dei componenti del percorso non esista, readlink non produrrà nulla e avrà un codice di ritorno diverso da 0.

–canonicizzare-mancante

-m l'opzione è l'opposto di -e . Non verrà effettuato alcun test per verificare se i componenti del percorso esistono:

$ 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. Introduzione al comando alternatives in Linux

  2. Un'introduzione al comando diff

  3. Opzioni utili per ps

  4. Come utilizzare il comando basename?

  5. Il comando locate in Linux

Spiegazione del comando tar di Linux

Padroneggia la riga di comando di Linux

Il comando select in Linux

Il comando timer in Linux

Comando Linux DF – Le 3 opzioni più utilizzate

Spiegare l'uso del comando tee con esempi