📂

新入社員の皆さんへ送る研修サブ資料(絶対パス・相対パス編)

2023/04/12に公開

新入社員の皆さん(中途の方も)、こんにちは。
matoruruです。

IT基礎などの題目でLinuxやWindowsのコマンドプロンプトの各種コマンドやパスなどの概念について叩き込まれて困っていませんか?

見慣れない黒い画面での操作はわかりにくく、頭にも入ってこないですよね。

特にパスの概念は(分かれば何てことないんですが)イメージしづらいのではないでしょうか(カレントディレクトリ?ワーキングディレクトリ?ホームディレクトリ?相対?絶対?🤯)。

今回はそんなパスの概念について具体例を豊富に含めながら解説してみようと思います。

「ファイル」「フォルダ」「ディレクトリ」について

パスの説明をする前に

  • ファイル
  • フォルダ
  • ディレクトリ

の3つの用語について知ってもらう必要があります。

ファイルとは・・・

画像や音楽やテキストなど、パソコンに保存されているデータのことです。エクセルやワードなどの文書もファイルです(厳密にはスマホに入れたアプリ、パソコンで使える電卓やメモ帳などのツール類もファイルです)。

「開いてそれ自体の中身を見たり使ったりできるもの」がファイルと考えておけばいいかもしれません。

フォルダとは・・・

ファイルやフォルダの保存場所のことです。

(「フォルダの?」と思ったかもしれませんが、フォルダにはまた別のフォルダを入れることもできます。)

こういうのがフォルダです。これはLinux環境なので見た目がちょっと違うかもしれませんが、なんとなくアイコンの雰囲気でわかってもらえるんじゃないかと思います。

フォルダはダブルクリックすると開いてその中に移動することができます。試しにmy-worksをダブルクリックすると

中身はこんなふうになっています。folder1はまた別のフォルダです。work1work2neko.jpegファイルです。

フォルダを使えば、「研修資料」とか「就活資料」などジャンルごとに分けたり、好きなようにパソコンの中を整理整頓できます。

ディレクトリとは・・・

フォルダと同じです!
(厳密には違う?らしいですが実用上違いを感じたことがないので、無視していいと思います)。

以降、この記事では呼び方を「ディレクトリ」で統一します。

ここまでで「ファイル」「ディレクトリ(フォルダ)」の概念についての説明はおしまいです。これらを使いこなせば、パソコンの中で資料やデータなどを整理整頓できます(これまでも実は無意識にやっていたという方も多いと思います)。

カレントディレクトリ(別名:ワーキングディレクトリ、作業ディレクトリ)とは・・・

カレントディレクトリは呼び名がいろいろあって、「ワーキングディレクトリ」や「作業ディレクトリ」と呼ばれることもあります。

これは、自分が今開いているディレクトリのことを指します。

WindowsのコマンドプロンプトやLinuxのターミナルの話なら、「自分が今いるディレクトリ」や「現在地」という呼び方がしっくりくるかもしれません。

次はいよいよ「パス」です。

「パス」について

パス(Path)とは、フォルダやファイルの場所を示すものです。「道筋」や「住所」などと喩える人もいるかもしれませんが、みんな大体同じことを言っています。

例えば、さっきフォルダの説明の節に貼ったスクリーンショットにneko.jpegという画像ファイルがありましたが、その場所を人に教えるためにはどうすればいいかを考えてみましょう。

neko.jpegを開いて!」とお願いされたら、「それはどこにあるの?」と聞きたくなりませんか?

「Desktopフォルダの中のmy-worksフォルダの中のneko.jpegを開いて!」

と言われれば、きっと多くの人に理解してもらえますよね。そのような指示をするための概念がパスです。

上の説明文をパスの形式に直すと、

/home/matoruru/Desktop/my-works/neko.jpeg

となります(Linux/Unixの場合)。

Windowsの場合は

C:¥home¥matoruru¥Desktop¥my-works¥neko.jpeg

です。

ログインできるユーザが複数人いたらデスクトップは複数あるので、/home/matoruruでユーザを指定して、その中のDesktopの中のmy-worksフォルダの中のneko.jpegという雰囲気です。


このように、パスはあるフォルダやファイルの場所を示すための仕組みなのですが、パスには絶対パス相対パスの2種類が存在します。

絶対パス

絶対パスとは、そのフォルダやファイルの位置をそのコンピュータ上で確実に指し示すことができるパスのことです。

前節で書いた

/home/matoruru/Desktop/my-works/neko.jpeg

C:¥home¥matoruru¥Desktop¥my-works¥neko.jpeg

は絶対パスです。

/C:¥ルートディレクトリと呼ばれていて、全てのディレクトリの始まり、一番根本にあるディレクトリです。他の全てのディレクトリはルートディレクトリに内包されていて、必ずそこから辿ることができます。

/home/matoruru/Desktop/my-works/neko.jpeg

この絶対パスは、**「ルートディレクトリにあるディレクトリhomeの中のディレクトリmatoruruの中のディレクトリDesktopの中のディレクトリmy-worksの中のneko.jpegというファイル」**を指しています。

相対パス

相対パスとは、そのフォルダやファイルの位置をカレントディレクトリから指し示すことができるパスのことです。

どこからでもそのパスでその位置を絶対的に特定できるわけではなくカレントディレクトリから相対的に特定できるという特徴からこのように呼ばれています。

そのため当然、カレントディレクトリが変われば、そのパスが示す場所も変わります。

例えば今自分が

/home/matoruru/Desktop/my-works

の位置にいるとします(カレントディレクトリが/home/matoruru/Desktop/my-worksであるということと同義)。

この時、

/home/matoruru/Desktop/my-works/neko.jpeg

のファイルは単に

neko.jpeg

もしくは

カレントディレクトリを意味する記号.を付けて

./neko.jpeg

だけで示すことができます。

これは以下のように考えるとわかりやすいです。

「今自分が/home/matoruru/Desktop/my-works/のディレクトリにいる状態」というのは

このようにそのフォルダの中身を開いていることと同じです。この状態でneko.jpegと言われればそのファイルを特定することができますよね。

さらに奥のフォルダを開いていくこともできます。スクリーンショットのfolder1の中にあるinu.jpegにアクセスしたい時は、

folder1/inu.jpeg

もしくは

folder1/inu.jpeg

とすることもできます。

これは絶対パスで表すと

/home/matoruru/Desktop/my-works/folder1/inu.jpeg

となりますが、相対パスで表せるのであれば相対パスのほうが短くて便利ですよね。

絶対パスと相対パスの使い分けは経験を積むうちにわかってくると思います。

ディレクトリを表す記号...について

.はカレントディレクトリを表します。
..は一つ上のディレクトリを表します(外側のディレクトリとも言える)。

neko.jpeg./neko.jpegと表せますし、極端ですが././././neko.jpegと書くこともできます(.は現在地を示すので、いくつ繋げても示す場所は変わらない)。

カレントディレクトリが/home/matoruru/Desktop/my-works/folder1のときに/home/matoruru/Desktop/my-works/neko.jpegを指し示したい場合は、../neko.jpegと書くことができます。既にfolder1の中にいるので、現在地の一つ外にあるneko.jpegという理解でOKです。

パスのまとめ

そのファイルを絶対にその場所から動かさないのであればそのファイルに対しては常に絶対パスでアクセスすることが可能ですが、そうでないのであれば絶対パスでのアクセスを保証することはできません。

反対に、あるファイルをディレクトリごと移動させる機会が多いのであれば、そのフォルダをカレントディレクトリとして相対パスでそのファイルを示せば、そのディレクトリからはそのファイルを常に指し示すことができます。この場合は、絶対パスではあてになりません。

最後に

記事を読んでくださってありがとうございます!

Twitterフォローしていただけると記事を書き続けるモチベーションになります😺
https://twitter.com/_matoruru

分からないことがあれば記事の本コメント欄、もしくはTwitterのDMでも答えるので話しかけてください😀

Discussion