cdを実行する理由 何をする前に?


回答:


32

あなたはしません。

少なくともそうではありません。引用されたドキュメントの前の行は重要です:

  • pwdcd を実行するたびにプロンプトを設定します。
  • cd .何かをする前に必ずa をしてください。

このようにして、オペレーターは、重要なことを行う前に現在の作業ディレクトリを確認します。変更ごとに印刷されます。cd .そうでなければ意味がありません。

この「検証」は良いことであり、その形式を適合させる必要があります。このテーマのより一般的な(IMHO)バリエーションは、常にプロンプトで作業ディレクトリを印刷することです。


11
それは「常に確認してくださいあなたはあなたがいると思うディレクトリにあることが重要何かを行う前に『PWD』を入力する」と考える方が良いでしょうです
ロッド・マクファーソン

4
pwd何かをする前に単にやらないのですか?
マーティンコネクニー

15
実際には、用途があります。シンボリックリンクを介してディレクトリに移動した後、リンクが削除され、「current_release」へのシンボリックリンクでバージョンが制御されるサーバー展開中など、別の場所で再作成された場合cd .、実際の基盤が変更されますあなたがいるディレクトリ
スチュワート

1
「プロンプトで常に作業ディレクトリを出力する」ための+1 それが私がしていることです。
水田ランダウ

4
@Stewart残念ながら、これはシンボリックリンクが他の何かを実行した cd .、しかし変更する前に変更さても役に立ちません。間違ったディレクトリにいる可能性を減らすだけですが、一般的な問題は解決しません。cd $(readlink -f .)実際にそこに滞在したいというようなものを使用して実際のディレクトリに切り替えない限り。
scai

18

シェルの現在の作業ディレクトリが削除されると、データが失われる可能性があります。

例えば、

$ pwd
/home/user/test
$ rmdir /home/user/test
$ pwd
/home/user/test
$ some_command | tee command.log
tee: command.log: No such file or directory
<long output>

の出力はsome_commandディスクに書き込まれませんでした。

cd .コマンドを実行する前に入力すると、問題が明らかになります。

$ pwd
/home/user/test
$ rmdir /home/user/test
$ cd .
$ pwd
.

現在の作業ディレクトリdirectoryを削除して再作成した場合、入力cd .するとそのディレクトリへの参照が「更新」されます。

$ ls
foo bar ljz
$ pwd
/home/user/test
$ rmdir /home/user/test
$ mkdir /home/user/test
$ pwd
/home/user/test
$ ls
$ cd .
$ ls 
foo bar ljz

13

現在のディレクトリを表示することがより重要だと思います。

すべてのLinuxサーバーで、/etc/bashrc「W」を「w」に変更してプロンプトを変更します。

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

 [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \w]\\$ "

これの効果は次のとおりです。

[root@xt include]#

[root@xt /usr/src/spl-0.6.1/include]# 

あるPS1bashの固有のか?
qdii

私はそう思う...それは私が使用するすべてです。
ewwhite

1
次のシステムアップグレードでは、変更が失われる可能性があります。
ott--

2
@ ott--それを更新するだけでなく、~/.profileそれ~/.bash_profileをスティック/etc/skel/.profile
-jscott
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.