【Bash講座 第2回】ファイルを自在に操る!絶対パス・相対パスとワイルドカードの魔術

bash講座

【Bash講座 第2回】いちいち移動するのは面倒?「パス」を極めて手抜きしよう

こんにちは!「リナックス先生」です。
前回は、黒い画面にログインして、lscd でディレクトリを移動するところまで進みましたね。
コウ君、その後の調子はどう?

コウ君

先生!コマンド操作にも少し慣れてきたんですが…
深い階層にあるファイルを操作したい時、いちいち cd で移動してからコマンドを打つのが面倒くさいです。
いきなり遠くのファイルを指定する魔法はないんですか?

リナックス先生

いい着眼点ね!それが「エンジニアの怠惰」という才能よ。
もちろん、移動せずにファイルを操作する方法はあるわ。
そこで重要になるのが「パス(Path)」の概念と、魔法の記号「ワイルドカード」よ。
今回は、Linux初心者が最初に挫折しやすい「絶対パス・相対パス」の違いを完全にマスターしましょう!

第2回となる今回は、ファイルやディレクトリの場所を正確に指し示す「パス」の考え方と、複数のファイルを一括で操作するテクニックを学びます。
これを覚えると、コマンド入力の速度が3倍になりますよ。

本講座のカリキュラム(全12回)

AlmaLinux 9 (RHEL 9互換) 環境を前提に、基礎から応用までステップバイステップで進めます。

  1. Bash入門編:シェルとカーネルの関係、CUIの哲学、環境構築
  2. 【今回】ファイル操作の極意:絶対パス・相対パスと「ワイルドカード」の魔術
  3. 権限(パーミッション)とユーザー:chmod, chown, sudoの仕組みを完全理解
  4. 入出力リダイレクトとパイプ:Linuxの真骨頂!コマンド同士を連携させる技術
  5. テキスト処理の基本:cat, head, tail, less…ファイルの中身を覗く道具たち
  6. 最強のエディタ「Vi/Vim」入門:サーバー内でテキストを編集する必須スキル
  7. シェルスクリプトの第一歩:ファイルにまとめて自動実行!変数と引数の基礎
  8. 条件分岐(if文):サーバーの状態を見て「判断」できるスクリプトを作る
  9. 繰り返し処理(for/while文):面倒な単純作業を1秒で終わらせるループ処理
  10. テキスト処理の応用:grep, sed, awk…ログ解析の達人になるための三種の神器
  11. 実践・自動化スクリプト:バックアップと監視を自動化し、Cronで定期実行する
  12. 総仕上げ:自作スクリプトの集大成と、エンジニアとしての歩き方

1. 「住所」と「道案内」の違い:パスの指定方法

Linuxにおける「パス(Path)」とは、ファイルやディレクトリの「場所(住所)」のことです。
指定方法には大きく分けて2つの流儀があります。

リナックス先生

イメージしやすいように、東京タワーへの行き方で例えてみましょう。
パスには「絶対」と「相対」の2種類があるの。

種類 例え(東京タワーへの行き方) 特徴
絶対パス
(Absolute Path)
「東京都港区芝公園4丁目2-8 へ行ってください」
(住所で指定)
今どこにいても、必ず同じ場所にたどり着ける。
記述が長くなりがち。
相対パス
(Relative Path)
「ここから2つ先の信号を右に曲がって、300m進んでください」
(道案内で指定)
今の現在地(カレントディレクトリ)によって、たどり着く場所が変わる。
近くのファイルを指す時は短くて楽。

(1) 絶対パス (Absolute Path)

一番上の階層であるルートディレクトリ / から書き始める方法です。
迷子になった時や、スクリプト(プログラム)の中に書く時は、間違いが起きないこの書き方が推奨されます。

# 例:/etc/ssh/sshd_config というファイルを指定する場合
[root@localhost ~]# ls -l /etc/ssh/sshd_config

(2) 相対パス (Relative Path)

今いる場所(カレントディレクトリ)を基準にして場所を指定する方法です。
/ から始めず、いきなりディレクトリ名や、以下の「特別な記号」から書き始めます。

  • . (ドット1つ):今の場所(カレントディレクトリ)
  • .. (ドット2つ):1つ上の階層(親ディレクトリ)
コウ君

ドット2つ .. は「親ディレクトリ」なんですね。
じゃあ、「1つ上の階層の、隣の部屋にあるファイル」を指定したい時はどうすれば?

リナックス先生

その場合は ../ を使って一度上に登ればいいのよ。
例えば今 /home/kou/work/ にいて、隣の /home/kou/memo/ にあるファイルを見たいなら、こう書くの。

# 現在地を確認
[root@localhost work]# pwd
/home/kou/work

# 一つ上がって(kou)、memoディレクトリに降りる
[root@localhost work]# ls ../memo/file.txt

2. ファイルを一網打尽!「ワイルドカード」の魔術

ここからがBashの真骨頂です。
ファイル名の一部を「記号」に置き換えることで、複数のファイルをまとめて指定することができます。
これをワイルドカード(glob展開)と呼びます。

(1) アスタリスク * :何文字でもOK

「0文字以上の任意の文字列」を表します。最も頻繁に使います。

# 拡張子が .log のファイルをすべて表示
[root@localhost ~]# ls *.log

# 「access」で始まるファイルをすべて表示
[root@localhost ~]# ls access*

(2) クエスチョン ? :任意の1文字

「ちょうど1文字」を表します。文字数を厳密に指定したい時に使います。

# file1.txt, fileA.txt はヒットするが、file10.txt はヒットしない
[root@localhost ~]# ls file?.txt

(3) 角括弧 [] :指定した文字のどれか

中に入れた文字のいずれか1文字にマッチします。

# file1.txt, file2.txt, file3.txt だけ表示(file4.txtは出ない)
[root@localhost ~]# ls file[123].txt

# 範囲指定も可能(0から9まで)
[root@localhost ~]# ls file[0-9].txt
リナックス先生

【警告】 ワイルドカードを使う時は rm コマンドに注意してね。
rm * と打つと、その場所にあるファイルを全て削除しちゃうわ。
特に「スペース」には気をつけて。 rm file * と打つと、「file」と「全部(*)」を消すことになって大惨事よ。

3. プロっぽい技:ブレース展開 {}

複数のファイルを生成したり、バックアップを取る時に便利なのがブレース展開です。

コウ君

設定ファイルをいじる時、cp config.txt config.txt.bak って毎回ファイル名を2回書くのが面倒くさいです…。

そんな時こそ、この機能の出番です。
{} の中にカンマ区切りで文字列を入れると、Bashがそれを展開してコマンドを作ってくれます。

# 以下のコマンドは...
[root@localhost ~]# cp config.txt{,.bak}

# 実は、このように展開されて実行されています!
[root@localhost ~]# cp config.txt config.txt.bak

連番のディレクトリを一気に作る時にも便利です。

# 2024年1月から12月までのディレクトリを一発作成
[root@localhost ~]# mkdir 2024-{01..12}
[root@localhost ~]# ls
2024-01 2024-02 ... 2024-12

4. 意外な落とし穴:隠しファイル

Linuxでは、ファイル名の先頭に . (ドット) がつくと「隠しファイル」扱いになり、普通の ls では表示されなくなります。
.bashrc.ssh などの設定ファイルによく使われます。

# 普通にlsしても見えない
[root@localhost ~]# ls

# -a (all) オプションをつけると見える
[root@localhost ~]# ls -a
.  ..  .bash_history  .bashrc  .ssh

先ほど紹介したワイルドカード * も、通常設定では隠しファイルを含みません。
「全部コピーしたはずなのに、設定ファイルだけコピーされてない!」という事故は、これが原因であることが多いです。

次回予告:初心者の最大の壁「パーミッション」

第2回は、パス操作とワイルドカードについて解説しました。
これで、ディレクトリを移動しまくらなくても、遠くのファイルをスナイパーのように操作できるようになりましたね。

次回は、Linux初心者が必ず一度は泣かされるエラー「Permission denied(許可がありません)」の正体に迫ります。
chmod 777 って何? root と一般ユーザーは何が違うの?
セキュリティの要である「権限(パーミッション)」について、図解で分かりやすく解説します。

リナックス先生

次回までに、今日習った mkdir {1..10} を使って、自分の環境でディレクトリを量産してみてね。
自分で作ったファイルを自分で消す練習も忘れずに!

▼本講座推奨!AlmaLinux 9がすぐ使えるVPS

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント