グロブ

通常、シェルは、コマンドラインに指定されたすべてのファイル名パターンを、それにマッチするファイル名に展開する。これをグロブ(globbing)と言う。

例: ~/*.txt → ホームディレクトリにある全ての.txtファイル

Perlプログラムの中で、*.txtのようなパターンを展開するには、glob関数を使う。

my @all_files = glob '*';
my @txt_files = glob '*.txt';

Unixファイルシステムの基本(iノードとリンク)

  • 各ファイルは、番号が振られたiノード(inode)に格納される(ディスクを土地だと考えると、iノードは、その特定の1区画に相当)。
  • 各iノードはリンク数(link count)という数を持っている。iノードがどのディレクトリにも入っていなければ、リンク数は必ず0になる。iノードがディレクトリに追加されると、リンク数が1つ増やされる。
  • ls -lコマンドの出力で、パーミッションフラグ(-rw-r--r--等)の右隣りに表示されるのはリンク数。ほとんどのファイルは1、ディレクトリは最低でも2。
  • リンク(ハードリンク)を作成できるのは、ファイルのみ。ディレクトリは不可。
  • ボリュームをまたいでリンクを作成することはできない。

シンボリックリンク

シンボリックリンク(symbolic link)は、ディレクトリ内の特別なエントリで、システムに対して別の場所を見に行くように指示する。シンボリックリンクには、以下のような特徴がある。

  • シンボリックリンクでは、リンク数は増えない。
  • ディレクトリに別名をつけることができる。
  • ボリュームをまたいでシンボリックリンクを作成することができる。