GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erklären Sie die Optionen des Readlink-Befehls?

Kann mir bitte jemand die folgenden Optionen von readlink erklären Befehl in einfacher Sprache:

   -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

Akzeptierte Antwort:

Ich denke, es ist ziemlich selbsterklärend, daher kenne ich den Teil, der für Sie zweideutig klingt, nicht wirklich…
Mal sehen mit einem Beispiel:

–kanonisieren

$ 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

Was auch immer die Optionen sind, readlink wird:
– den relativen Pfad in den absoluten Pfad übersetzen
– den Symlink-Namen in den echten Pfad übersetzen

Und wie Sie oben sehen können, mit -f , readlink egal ob der letzte Teil dieses Pfades (hier nonexistentfile.txt ) existiert oder nicht.

Wenn ein anderer Teil dieses Pfads nicht existiert, readlink gibt nichts aus und hat einen anderen Rückgabecode als 0 (was bedeutet, dass ein Fehler aufgetreten ist). Siehe:

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

–canonicalize-existing

Wenn Sie dasselbe mit -e versuchen :

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

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

Mit -e , falls eine der Pfadkomponenten nicht vorhanden ist, readlink gibt nichts aus und hat einen anderen Rückgabecode als 0.

–canonicalize-missing

-m Option ist das Gegenteil von -e . Es wird nicht geprüft, ob die Komponenten von path:

vorhanden sind
$ 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. Einführung in den Alternativen-Befehl in Linux

  2. Eine Einführung in den diff-Befehl

  3. Wie verwende ich den basename-Befehl?

  4. Der Befehl locate unter Linux

  5. grub-install-Befehlsoptionen

Der Linux-tar-Befehl erklärt

Meistern Sie die Linux-Befehlszeile

Der Choose-Befehl unter Linux

Der Timer-Befehl in Linux

Linux DF-Befehl – ​​Die 3 am häufigsten verwendeten Optionen

Erklären Sie die Verwendung des tee-Befehls anhand von Beispielen