次の bash cd オプションの例: cd -Pe@ $directory

次の bash cd オプションの例: cd -Pe@ $directory

言ったbash 4.4.12help cd

Options:
  -L        force symbolic links to be followed: resolve symbolic
            links in DIR after processing instances of `..'
  -P        use the physical directory structure without following
            symbolic links: resolve symbolic links in DIR before
            processing instances of `..'
  -e        if the -P option is supplied, and the current working
            directory cannot be determined successfully, exit with
            a non-zero status
  -@        on systems that support it, present a file with extended
            attributes as a directory containing the file attributes

単語を理解するのが難しく、Google 検索エンジンでは何も見つかりません。

  1. cd -Pこれが優先されるいくつかの例は何ですかcd
  2. cd -L標準とどう違うのですかcd
  3. 作業ディレクトリを正常に決定できないことはどのように可能ですか?
  4. 使用された例は何ですか-@

答え1

これバッシュマニュアル詳細が提供されます。

  1. cd -P「実際の」パスで終わっていることを確認してください。

    $ cd /tmp
    $ mkdir -p a/b
    $ ln -s a/b b
    $ cd b
    $ pwd
    /tmp/b
    $ cd -P ../b
    $ pwd
    /tmp/a/b
    

    を使用することは、からのシンボリックリンクが逆-P参照されるという意味です。 isとのやり取りは通常、ディスクのパスをチェックするのではなく、古いパスコンポーネント(存在する場合)を削除することによって処理されます。多くのシンボリックリンクを使用すると、これは非常に混乱する可能性があります。ba/b....

  2. cd -Lデフォルト値と同じですcd

  3. 現在、作業ディレクトリが削除されたことを確認できません。

    $ cd /tmp
    $ mkdir -p c/d
    $ cd c/d
    $ rmdir ../d ../../c
    $ cd ..; echo $?
    cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    0
    

    V.

    $ cd -Pe ..; echo $?
    cd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    1
    
  4. 私はこれについて自信がありません(どういうわけか想像できますが、Bashは「cd::-@無効なオプション」とだけ言います。これは現在必要な場所であるSolarisでのみ使用できるようですO_XATTR)。

関連情報