Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21093

Linuxの「/(スラッシュ)」の役割を知っておくと恥をかかずに済むかもって話

$
0
0

はじめに

Qiita初投稿です。
Railsチュートリアルの第1章を進めていた際に、Linuxコマンドの「/(スラッシュ)」の役割を知らなかったせいで、gitのリポジトリを作り直すという勿体ないことをしてしまいました。
そのため、自戒を込めて記事に残しておきます。

※以後、「/(スラッシュ)」を「/」と省略させて頂きます。

「/」は2つの役割がある

具体例を用いて、2つの役割の違いを説明していきます。
今回、AWSのEC2のインスタンスを使用して、Linuxコマンドを実行させていきます。

また、前提として現在のディレクトリは/home/の直下としており、ディレクトリ構成は下記を想定しています。(厳密にはもっとフォルダやファイルがあります)

ディレクトリ構成イメージ
home└──ec2-user└──environment├──hello_app└──README.md

1つ目の役割

そのまま「/」として使用される

使用コマンドls ec2-user/environment/

実行結果
hello_appREADME.md

こちらはよくファイルパス等を指定する時の「/」のイメージ通りの挙動になっています。

問題は次です。

2つ目の役割

ルート(最上位パス)として使用される

使用コマンドls /ec2-user/environment/
※先ほどのコマンドからec2-userの頭に「/」を足しただけです。

実行結果
ls: cannotaccess/ec2-user/environment/:Nosuchfileordirector

「そんなフォルダは存在しないよ」とエラーになってしまいました。
何故こんな挙動になるか調べるために、違うコマンドを実行してみましょう。

使用コマンドls /

実行結果
bindevliblost+foundnvm-install.txtrootselinuxtmpbootetclib64mediaoptrunsrvusrcgrouphomelocalmntprocsbinsysvar

今回はエラーにならなかったですね。
ここで「実行結果」の中で注目して頂きたいのが「home」です。

今回のフォルダ構成は、元々下記を想定していました。

ディレクトリ構成イメージ
home└──ec2-user└──environment├──hello_app└──README.md

「home」が最上位にありますね。

現状、コマンド実行時の場所が/home/の直下となっているにも関わらず、ls /の実行結果の中で「home」が登場しています。
(ちなみに、/home/home/というディレクトリは存在しません)

本来であれば「実行結果」で「ec2-user」が出てこないとおかしいことになるはずです。

ということは、つまり、ls /の「/」は「ルート(最上位のパス)(絶対パスでフォルダパスを書いたときに一番左に出てくるもの)」ということになります。

実際に、下記のコマンドを実行してみると…
使用コマンドls /home/ec2-user/environment/

実行結果
hello_appREADME.md

となり、「絶対パス」で指定されていることが分かります。

このことより、「/」には2つ目の役割があることが分かりました。

結論

「/(スラッシュ)」には下記の2つの役割がある。
・通常の「/」として使用される。
・ルート(最上位パス)として使用される。

おわりに

勢いで記事を書いたため、技術的な間違えや読みづらい説明などがあるかもしれません。
その場合にはご指摘頂けますと幸いです。

それにしても、意外と記事の投稿って時間がかかるものなんですね…
頻繁に記事を投稿されている方の凄さを改めて知ることが出来た気がします。

参考文献

"/"と"."と".."の意味 初心者のためのLinuxサーバー構築講座
http://www.obenri.com/_operation/root_dots.html


Viewing all articles
Browse latest Browse all 21093

Trending Articles