Linux / UNIX shシェルのどのコマンドが現在のディレクトリを返しますか?


37

shシェルを使用して(ではなくbash)、Linux / UNIXのどのコマンドが現在のディレクトリを出力しますか?

$ *showmewhereiam*
/sys/kernel/debug
$

4
簡単なグーグル検索で答えが得られるでしょう。
マッドサイエンティスト

9
@ Mad-scientistこれは真実かもしれませんが、Googleに行くように人々に伝える質問/回答サイトの目的を無効にします。トラフィックの90%はWeb検索からです。
slhck


2
SEOにとって単純すぎるものはありません!
ケンゾー

面白いことに、この質問は単純なGoogle検索の答えですunix whereami
ジェイキリーン

回答:


60

試してくださいpwd

$ pwd
/home/<username>

6
私は最初のタッチのlinux、私はそれがおよそコマンドだと思ったときに、パスワード/dev開発についての何か(ソースコードまたはそのようなもの)である
LiuYan刘研

2
ああ、devはデバイスを意味しますか?!今まで常に考えていたのは、単に開発を意味するだけでした... Linux 開発者が特別なnullオブジェクトを置くのはdev / nullだと思いました。ありがとう@LiuYan刘研
1owk3y

@LiuYan刘研-あなたが知らない場合、それが混乱することに完全に同意します。調べなければなりませんでした。それは、その機能のためにそのコマンドを選択する理由に困惑している他の人のための「Print Working Directory」の略です。
squarecandy

1
@squarecandy、だから私は頭字語をできるだけ古くすることを避けます。頭字語は現時点では曖昧な意味を持っていません-あなたは将来それがどんな意味を持つかわかりません。Jeff Dunhamの人形Walter による冗談があります。DCで起こることはYouTubeに残ります!、DCを意味するD igital Cのアメーラをもワシントン手段Dとのistrict Cのジョークでolumbiaを。
LiuYan刘研

11

一般的な答えはpwdですが、特定のディレクトリへの到達方法、およびルートにシンボリックリンクが含まれているかどうかによって、結果が異なる場合があることに注意してください。

あなたはというディレクトリがある場合たとえば、realと呼ばれ、そのディレクトリへのシンボリックリンクをvirtual、あなたcdvirtualディレクトリを、その後、pwdその表示されますvirtualあなたがしている実際のディレクトリがあるにもかかわらず、ディレクトリ名をreal

実際の基礎となるディレクトリを表示するには、次のいずれpwd -Pかを使用しますreadlink -f(任意のパス)

$ mkdir real
$ ln -s実仮想
$ cd virtual
$ pwd
/ home / ユーザー名 / tmp / virtual
$ pwd -P
/ home / ユーザー名 / tmp / real
$ readlink -f。
/ home / ユーザー名 / tmp / real

シェルは、多くの場合、交換することを注意pwdにもかかわらず、そう私のシステム(RHEL6)の上に、独自の内部バージョンを使用してコマンドをpwd(1)マニュアルページは、ことを示唆している--physicalだけでなく、意志の仕事を-P私が実行しているので、bashそれはしていません。

$ pwd-物理
bash:pwd:-:無効なオプション
pwd:使用法:pwd [-LP]
$ / bin / pwd-物理
/ home / ユーザー名 / tmp / real
$ / usr / bin / env pwd --physical
/ home / ユーザー名 / tmp / real

1

他の人が言ったように、pwd通常は十分に仕事をします。しかし、私を助けてくれたアイデアを追加したいと思います。

現在一般的に使用されているすべてのシェルでは、コマンドプロンプトの外観をカスタマイズできます。私は自分がいるコンピューターの名前と作業ディレクトリの両方を表示するようにカスタマイズします。そうすれば、私はいつも自分がどこにいるか知っています。(コンピューター名の部分は、使用しているターミナルウィンドウがリモートサーバーへのSSHに使用されているかどうかを認識するのに役立ちます。)たとえば、Plasticoと呼ばれるラップトップで新しいターミナルウィンドウを開くと、次のように表示されます。

Plastico ~> cd Desktop/
Plastico ~/Desktop> cd ~/Sites/raygunrobot.com
Plastico ~/Sites/raygunrobot.com> cd /usr
Plastico /usr> 

ホームディレクトリをとして短縮していることがわかり~ます。ターミナルプロンプトに対してこれを行うのは非常に便利です。Finderウィンドウを見るよりも、自分がどこにいるかを一目で正確に知ることができます。

tcshではset prompt = 'Plastico %~%# ' 、ホームディレクトリの.tcshrcファイルに追加してこれを行います。export PS1="Plastico $PWD $ ".profileファイルに追加することで、kshでも実行しました。しかし、Linuxユーザーであるため、おそらくBashを使用しています。Bashについてはあまり経験がありません(私はそのような変人です)。しかし、同じように見えます、私は追加することによってそれを行うことができるかもしれないPS1="Plastico \w $ "、私の.bashrcファイルに。

編集: OPが、bashではなくshに興味があると言っていることに気づいただけです。しかたがない; 関係なく、これが役立つことを願っています。


それはクールなアイデアです。シンプルなデスクトップのユースケースではうまくいくかもしれません。あなたのプロンプトだけがそうであるPlastico /var/www/vhosts/myveryexcellentwebsite.com/public_html/wp-content/themes/myveryexcellenttheme/js/vendor/excellentjs/ >か、またはそのような何かであるならば、それが超深層ディレクトリのために扱いにくいかもしれないように思われます。
squarecandy

1
$ pwd
/your/current/directory
$

pwd印刷作業ディレクトリから来ます。

Linux manページから:

pwd-現在/作業ディレクトリの名前を出力

あらすじ

pwd [オプション] ...

説明

現在の作業ディレクトリの完全なファイル名を出力します。

-L、- 論理

シンボリックリンクが含まれている場合でも、環境からPWDを使用する

-P、- 物理

すべてのシンボリックリンクを避ける

- 助けて

このヘルプを表示して終了

- バージョン

バージョン情報を出力して終了する

注:シェルには独自のバージョンのpwdがあり、通常はここで説明するバージョンよりも優先されます。サポートするオプションの詳細については、シェルのドキュメントを参照してください。

(...)


これは、5年以上前に受け入れられた回答の情報を複製します。他に何か追加できますか?
ベルティエブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.