#はじめに
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_app README.md
こちらはよくファイルパス等を指定する時の「/」のイメージ通りの挙動になっています。
問題は次です。
##2つ目の役割
・ルート(最上位パス)として使用される
使用コマンド:ls /ec2-user/environment/
※先ほどのコマンドからec2-userの頭に「/」を足しただけです。
ls: cannot access /ec2-user/environment/: No such file or director
「そんなフォルダは存在しないよ」とエラーになってしまいました。
何故こんな挙動になるか調べるために、違うコマンドを実行してみましょう。
使用コマンド:ls /
bin dev lib lost+found nvm-install.txt root selinux tmp
boot etc lib64 media opt run srv usr
cgroup home local mnt proc sbin sys var
今回はエラーにならなかったですね。
ここで「実行結果」の中で注目して頂きたいのが「home」です。
今回のフォルダ構成は、元々下記を想定していました。
home
└── ec2-user
└── environment
├──hello_app
└──README.md
「home」が最上位にありますね。
現状、コマンド実行時の場所が/home/
の直下となっているにも関わらず、ls /
の実行結果の中で「home」が登場しています。
(ちなみに、/home/home/
というディレクトリは存在しません)
本来であれば「実行結果」で「ec2-user」が出てこないとおかしいことになるはずです。
ということは、つまり、ls /
の「/」は「ルート(最上位のパス)(絶対パスでフォルダパスを書いたときに一番左に出てくるもの)」ということになります。
実際に、下記のコマンドを実行してみると…
使用コマンド:ls /home/ec2-user/environment/
hello_app README.md
となり、「絶対パス」で指定されていることが分かります。
このことより、「/」には2つ目の役割があることが分かりました。
##結論
「/(スラッシュ)」には下記の2つの役割がある。
・通常の「/」として使用される。
・ルート(最上位パス)として使用される。
#おわりに
勢いで記事を書いたため、技術的な間違えや読みづらい説明などがあるかもしれません。
その場合にはご指摘頂けますと幸いです。
それにしても、意外と記事の投稿って時間がかかるものなんですね…
頻繁に記事を投稿されている方の凄さを改めて知ることが出来た気がします。
#参考文献
"/"と"."と".."の意味 初心者のためのLinuxサーバー構築講座
http://www.obenri.com/_operation/root_dots.html