言ったbash 4.4.12
:help 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 検索エンジンでは何も見つかりません。
cd -P
これが優先されるいくつかの例は何ですかcd
?cd -L
標準とどう違うのですかcd
?- 作業ディレクトリを正常に決定できないことはどのように可能ですか?
- 使用された例は何ですか
-@
?
答え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とのやり取りは通常、ディスクのパスをチェックするのではなく、古いパスコンポーネント(存在する場合)を削除することによって処理されます。多くのシンボリックリンクを使用すると、これは非常に混乱する可能性があります。b
a/b
..
..
cd -L
デフォルト値と同じですcd
。現在、作業ディレクトリが削除されたことを確認できません。
$ 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
私はこれについて自信がありません(どういうわけか想像できますが、Bashは「
cd
::-@
無効なオプション」とだけ言います。これは現在必要な場所であるSolarisでのみ使用できるようですO_XATTR
)。