====== ディレクトリとファイルについて ======
===== ディレクトリ =====
__**ディレクトリ**__とは複数のファイルを置ける場所のことで、Windows でいう__**フォルダ**__と同じようなものである(以下ではディレクトリの代わりにフォルダという名称を使うことがある)。
ディレクトリにはファイルだけでなく、さらにディレクトリを置いて入れ子にすることもできる。
Unixでは実際に様々なディレクトリが入れ子状態になっている。
* **ルートディレクトリ**
* 一番上の大元のディレクトリである。Unixではこの下に様々なディレクトリがある。
* 「''/''」で表される。
* **ホームディレクトリ**
* 各ユーザに割り当てられる自分専用のディレクトリである。
* 本学では「''/home/irhome/c1xx/c1xxxxx/''」に割り当てられている(''c1xxxxx'' はユーザ名と同じ)。
* **カレントディレクトリ**
* 現在作業をしているディレクトリのことである。
自分のホームディレクトリの下なら自由にディレクトリやファイルを作成したり削除したりできる。
その他の場所のディレクトリには制限がかかっており、例えば他人のホームディレクトリの下にあるディレクトリやファイルを勝手にいじることはできないようになっている。
本学のサーバのディレクトリは具体的に以下のような階層構造になっている。
上流 <-----------------------> 下流
/
├── bin/
├── etc/
└── home/
├── career/
└── irhome/
└── c1xx/
├── c1xxaaa/
├── c1xxbbb/
└── c1xxxxx/
├── Desktop/
├── Mail/
└── public_html/
多くのディレクトリは入れ子になっており、
ディレクトリの場所は「''/''」(スラッシュ)で区切って表す。
これを__**パス名**__という。
例えば、パス名「''/home/irhome/c1xx/c1xxxxx/''」は、以下の階層構造を表す。
* 「''/''」の下に「''home''」というディレクトリがある。
* 「''home''」の下に「''irhome''」というディレクトリがある。
* 「''irhome''」の下に「''c1xx''」というディレクトリがある。
* 「''c1xx''」の下に「''c1xxxxx''」というディレクトリがある。
シェル上では特別なディレクトリを記号で表すことができる。
「''/''」はディレクトリの場所を表す区切りで使われるが、単独もしくは一番頭にあるとルートディレクトリを意味する。
^ 記号 ^ ディレクトリ ^
| ''/'' | ルートディレクトリ |
| ''~/'' | ホームディレクトリ |
| ''.'' | カレントディレクトリ |
| ''..'' | 一つ上のディレクトリ |
例えば、パス名「''/home/irhome/c1xx/c1xxxxx/''」は次のように表してもよい。
/home/career/../irhome/c119/c119xxx
===== ファイル =====
ファイルにはテキストファイルや画像ファイルなど様々な種類がある。
ファイル名には「''.''」(ドット)の後ろに__**拡張子**__((Windows や macOS では拡張子を元にどのアプリケーションで開くかを決めている。それらの OS では通常、拡張子は非表示になっており、拡張子を表示するためには設定が必要である。))という短い文字列を付けてファイルの種類を表すのが一般的である。
^ ファイル名の例 ^ 拡張子 ^ ファイルの種類 ^
| report.txt | .txt | テキストファイル |
| program.rb | .rb | Rubyプログラムファイル |
| data.csv | .csv | CSVファイル |
| sport.jpg | .jpg | JPEG画像ファイル |
| picture.png | .png | PNG画像ファイル |
| anime.gif | .gif | GIF画像ファイル |
| history1.doc | .doc | Microsoft Word用ファイル(97-2003) |
| history2.docx | .docx | Microsoft Word用ファイル(2007以降) |
| data1.xls | .xls | Microsoft Excel用ファイル(97-2003) |
| data2.xlsx | .xlsx | Microsoft Excel用ファイル(2007以降) |
| lecture1.ppt | .ppt | Microsoft PowerPoint用ファイル(97-2003) |
| lecture2.pptx | .pptx | Microsoft PowerPoint用ファイル(2007以降) |
| introduction.pdf | .pdf | PDF(Portable Document Format)ファイル |
ただし、拡張子はファイル名の一部でしかなく、自由に変えられるため、拡張子とファイルの種類が必ずしも対応するわけではない。
----
=== Unixの特殊ファイル ===
Unixには特殊なファイルがいくつかある。
* **ドットファイル**
* ファイル名が「''.''」(ドット)から始まるファイルで、通常はファイル一覧で表示されない隠しファイルである。アプリケーションの設定用ファイルとしてよく使われる。
* **シンボリックリンク**
* 正確にはファイルではないが、ディレクトリやファイルに付ける別名のようなもので、Windows ではショートカットに似ている。
===== ディレクトリ名とファイル名 =====
ディレクトリ名とファイル名にはある程度好きな言葉を使うことができるが、Unix では以下のような注意点がある。
* 半角文字のアルファベットや数字を使うのが望ましい(特に頭の文字)。
* アルファベットは大文字と小文字が区別される。
* 記号は「''-''」(マイナス)「''_''」(アンダースコア)「''.''」(ドット)が使える。その他に「'' ''」(空白)などの記号も一応使えるが、間違いが起こりやすいので使わないのが望ましい。
* 全角文字(日本語など)は文字化け等の問題が起こることがあるので使わないのが望ましい。
===== ファイルの容量 =====
ファイルの容量の単位には__**バイト(byte)**__が使われる。
バイトは略して「B」で表されることが多い。
例えば、日本語1文字は(UTF-8 で)データ量としては 3B(3バイト)になる。
日本語1000文字だと 3,000B(3,000バイト)になる。
容量が大きくなると桁が大きくなり、バイトだけで表すのが厳しくなってくる。
そのため、桁を省略するために__**接頭辞**__がよく使われる。
----
==== SI接頭辞 ====
SI接頭辞は長さや質量など物理量の単位で使われる接頭辞で、これをバイトの接頭辞として使うことが多い。
* $10^{3}\mathrm{B} = 1,000\mathrm{B} = 1\mathrm{KB}$(キロバイト)
* $10^{6}\mathrm{B} = 1,000,000\mathrm{B} = 1\mathrm{MB}$(メガバイト)
* $10^{9}\mathrm{B} = 1,000,000,000\mathrm{B} = 1\mathrm{GB}$(ギガバイト)
^ SI接頭辞 ^ 読み ^ 乗数 ^
| k(K) | キロ | $10^{3}$ |
| M | メガ | $10^{6}$ |
| G | ギガ | $10^{9}$ |
| T | テラ | $10^{12}$ |
| P | ペタ | $10^{15}$ |
----
==== 2進接頭辞 ====
コンピュータの中では2進数で扱った方がよい場合があるので、2の乗数に合わせた接頭辞である__**2進接頭辞**__を使うことがある。
* $2^{10}\mathrm{B}=1,024\mathrm{B}=1\mathrm{KiB}$(キビバイト)
* $2^{20}\mathrm{B}=1,048,576\mathrm{B}=1\mathrm{MiB}$(メビバイト)
* $2^{30}\mathrm{B}=1,073,741,824\mathrm{B}=1\mathrm{GiB}$(ギビバイト)
^ 2進接頭辞 ^ 読み ^ 乗数 ^
| Ki | キビ | $2^{10}$ |
| Mi | メビ | $2^{20}$ |
| Gi | ギビ | $2^{30}$ |
| Ti | テビ | $2^{40}$ |
| Pi | ペビ | $2^{50}$ |