2.2 パスの指定
Path Specification
パスはファイルやディレクトリの位置を示す。絶対パスはルートから、相対パスは現在位置からの経路を表す。
絶対パスと相対パス
@startuml
!theme plain
skinparam backgroundColor #FEFEFE
rectangle "/" as root {
rectangle "home" as home {
rectangle "user" as user {
rectangle "docs" as docs {
rectangle "file.txt" as file
}
rectangle "pictures" as pics
}
}
rectangle "etc" as etc
}
note right of file
絶対パス: /home/user/docs/file.txt
相対パス(userにいる場合):
docs/file.txt
./docs/file.txt
相対パス(picsにいる場合):
../docs/file.txt
end note
@enduml
図1: 絶対パスと相対パスの比較
| 種類 | 特徴 | 例 |
|---|---|---|
| 絶対パス | /から始まる、どこからでも同じ | /home/user/docs/file.txt |
| 相対パス | 現在位置から、/で始まらない | docs/file.txt, ../file.txt |
特殊記号
| 記号 | 意味 | 例 |
|---|---|---|
| . | 現在のディレクトリ | ./script.sh |
| .. | 親ディレクトリ | ../config.txt |
| ~ | ホームディレクトリ | ~/Documents |
| ~user | 指定ユーザーのホーム | ~root/.bashrc |
# 現在のディレクトリ確認
pwd
# ホームに移動
cd ~
cd # 引数なしも同じ
# 一つ上に移動
cd ..
# 直前のディレクトリに戻る
cd -
ワイルドカード
| パターン | 意味 | 例 |
|---|---|---|
| * | 任意の文字列(0文字以上) | *.txt → a.txt, file.txt |
| ? | 任意の1文字 | ?.txt → a.txt, b.txt |
| [abc] | a, b, cのいずれか | [0-9].txt → 1.txt |
| [!abc] | a, b, c以外 | [!0-9]* → file.txt |
# すべてのtxtファイル
ls *.txt
# log01.txt ~ log09.txt
ls log0?.txt
# 数字で始まるファイル
ls [0-9]*
出典
[1] man 7 glob - globbing pathnames.
[2] Bash Reference Manual - Filename Expansion.
[2] Bash Reference Manual - Filename Expansion.