GNU/Linux >> Tutoriels Linux >  >> Linux

Expliquer les options de la commande Readlink ?

Quelqu'un peut-il m'expliquer les options suivantes de readlink commande en langage simple :

   -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

Réponse acceptée :

Je pense que c'est assez explicite, donc je ne connais pas vraiment la partie qui vous semble ambiguë…
Voyons avec un exemple :

–canoniciser

$ 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

Quelles que soient les options, readlink va :
– traduire le chemin relatif en chemin absolu
– traduire le nom du lien symbolique en chemin réel

Et comme vous pouvez le voir ci-dessus, avec -f , readlink ne se soucie pas si la dernière partie de ce chemin (ici nonexistentfile.txt ) existe ou non.

Si une autre partie de ce chemin n'existe pas, readlink n'affichera rien et aura un code de retour différent de 0 (ce qui signifie qu'une erreur s'est produite). Voir :

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

–canonicaliser-existant

Si vous essayez la même chose avec -e :

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

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

Avec -e , si l'un des composants du chemin n'existe pas, readlink n'affichera rien et aura un code de retour différent de 0.

–canonicaliser-manquant

-m l'option est l'opposé de -e . Aucun test ne sera fait pour vérifier si les composants du chemin existent :

$ 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. Maîtrisez la commande Linux ls

  2. Options de la commande grub-install

  3. Options de la commande dpkg-reconfigure

  4. Options de commande ufw

  5. Comment fonctionnent les options '-s', '-t' et '-c' de la commande tr sous Unix ?

La commande Linux tar expliquée

Maîtrisez la ligne de commande Linux

La commande choose sous Linux

La commande timer sous Linux

Commande Linux DF – Les 3 options les plus utilisées

Expliquer l'utilisation de la commande tee avec des exemples