質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

2回答

5550閲覧

$ cd // ってどここれ?

Mr_Roboto

総合スコア2208

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

5グッド

4クリップ

投稿2016/07/05 13:56

毎度勉強させていただいております。

直接的にはプログラミングと関係ありませんが、検索しても不明なためお聞きします。

Mac OS Xのターミナルでコマンド打っていて、cd .. とするつもりが cd //と間違って入力したところ普通に移動できます!
pwdで確認しても // って表示されるじゃないですか!

どこここ?
ファイルの内容で確認すると ルートと同じようですが、なんでこうなるの?

cd ///だと普通に / になるようです。

何かOSの管理上意味のある動作なのでしょうか?

CentOSで確認しても同じ動作になるようです。
BSD系は現在環境が無いため不明です。

これが分からないから困っているとかではないのですが、何かご存知の方がいらっしゃいましたらご回答頂けると幸いに存じます。

よろしくお願い致します。

raccy, toshi_yama, shimizumasaru, hpfuku, ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

下記によると。

http://stackoverflow.com/questions/20690828/what-does-double-slash-in-cd-mean-in-linux

かつてネットワークファイルシステムにアクセスするために //hostname/path のような名前が使われていたことがあり、その歴史的経緯により / が2つの場合だけは特別扱いされているようです。

投稿2016/07/05 14:55

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr_Roboto

2016/07/05 15:15

ふーむ、なるほど その歴史的経緯っぽいんだろうなとは思ってたんですが、ホントにそうだったのですねぇ ありがとうございます。 ちなみにこれ普通に「linux cd "//"」 とかで検索しても見つけられなかったんですが、どのようなキーワードで検索したのですか?
ngyuki

2016/07/05 15:17 編集

linux cd slash double で検索しました。
ngyuki

2016/07/05 15:18

たしか linux cd slash の時点でサジェストに double がでてきてた気がしますー
Mr_Roboto

2016/07/05 15:23

そうか、名前で検索するのか、どうも頭が固いなぁ。。。 また勉強になりました m(_ _)m ありがとうございます。
guest

0

ご使用のシェルの実装に依存するので、同じ環境で確かめないと断言できませんが・・・

自分の経験では、linuxでパス入力を間違えスラッシュが二重に入力されても、実質的には一つを入力したのと同じになると思います。
つまり、言い換えると /// と同じルートディレクトリです。

試しに、cd // 移動した後に lsコマンドでカレントディレクトリにどんなファイルやディレクトリが存在するか確認してみてください。きっと、ルートディレクトリに存在するはずの bin boot dev usr var などが見えると思います。

また、試してはいませんが pwd -P のようにオプションを付けてカレントディレクトリの「絶対パス」を表示させてみると異なった表示になるかもしれません。

ではなぜ //と表示されてしまうかと言うと、これは推測ですが、pwd コマンドで表示されるパスが、都度実際のパスを調査して表示しているのではなくて「環境変数 PWD」の値を表示しているだけの場合があるからだと思います。そして恐らく、PWDには入力されたパスを、簡易的な変換を施すだけでスラッシュの重複等を完全に整理しないまま代入してしまうのだと思います。

ご参考までに以下のリンクを張りつけておきます。
pwdコマンド

投稿2016/07/05 14:18

編集2016/07/05 14:23
pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ngyuki

2016/07/05 14:30

bash だと pwd はシェルのビルドインコマンドですね。通常のコマンドの方だとまた異なるようです。 ``` cd // pwd # // /bin/pwd # / ```
ngyuki

2016/07/05 14:51

3つ以上だと結果が異なる・・謎い ``` cd /// pwd # / ```
Mr_Roboto

2016/07/05 15:18

ご回答ありがとうございます。 なるほど、環境変数にpwdがあるのですね、今知りました。 でもためしてみると 「$ cd ///」 で 「$ printenv | pwd」 としても 「/」 ってなりますね ^_^; bash以外のシェルだとどうなるかも暇があれば調べてみたいですねぇ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問