GNU/Linux >> Linux の 問題 >  >> Linux

Readlinkコマンドのオプションを説明しますか?

readlinkのオプションに従って誰かが私に説明してもらえますか 簡単な言語でのコマンド:

   -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

承認された回答:

かなり自明だと思うので、あなたにとって曖昧に聞こえる部分はよくわかりません…
例を見てみましょう:

–正規化

$ 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

オプションが何であれ、readlink will:
–相対パスを絶対パスに変換します
–シンボリックリンク名を実際のパスに変換します

上記のように、-freadlink このパスの最後の部分(ここではnonexistentfile.txt)かどうかは関係ありません )存在するかどうか。

このパスの別の部分が存在しない場合は、readlink 何も出力せず、0以外の戻りコードが返されます(これはエラーが発生したことを意味します)。参照:

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

–canonicalize-existing

-eで同じことを試してみる場合 :

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

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

-eを使用 、パスコンポーネントのいずれかが存在しない場合は、readlink 何も出力せず、0とは異なる戻りコードが返されます。

–canonicalize-missing

-m オプションは-eの反対です 。パスのコンポーネントが存在するかどうかを確認するためのテストは行われません:

$ 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. xargsコマンドの実用的なビュー

  2. 便利なpsオプション

  3. Linux での locate コマンド

  1. dpkg-reconfigure コマンド オプション

  2. ufw コマンドのオプション

  3. tr コマンドの「-s」、「-t」、および「-c」オプションは Unix でどのように機能しますか?

  1. Linuxlsコマンドをマスターする

  2. Linuxでのalternativesコマンドの概要

  3. diffコマンドの概要