●ディレクトリの作成

 ディレクトリを作成するコマンドは,「mkdir*26」です。例えば,/home/junがカレント・ディレクトリで,ここにtextというディレクトリを作成したい場合には,

と入力します。同じディレクトリ内に複数のディレクトリを作成できますが,同じ名前のディレクトリを同一ディレクトリ内に作成することはできません。

●ディレクトリの複写(コピー)

 ディレクトリの複写にも,cpを使います。例えば図7のディレクトリ構成で/home/jun/binディレクトリを/homeの直下にコピーする場合は,root権限を取得してから

と入力します。-r(recursiveの略)オプションは,ディレクトリ内のファイルを再帰的に(言い換えれば,ディレクトリ内の内容すべてをそっくりそのまま)コピーするためのものです。

●ディレクトリの削除

 ディレクトリを削除するコマンドは,「rmdir*27」です。ディレクトリの削除は通常ファイルの削除と違い,コマンドを実行する前に確認しなければならないことがあります。それは,削除対象のディレクトリにファイルやディレクトリが存在しないことです。このようなディレクトリを空のディレクトリと呼びます。

 例えば,カレント・ディレクトリにあるtextディレクトリを削除したい場合には,

と入力します。ここで,以下のメッセージが表示された場合には,textディレクトリは空ではなく,削除できなかったことになります。

 この場合には,まずtextディレクトリにあるファイルあるいはディレクトリを削除し,次いでtextディレクトリを削除することになります。

 ディレクトリ中のファイルごと削除することも可能です。この場合は,-r(recursiveの略)オプションを付けたrmコマンドを使います*28

 次のようにrmコマンドを実行すれば,確認を行わずに一気にディレクトリを削除することもできます。ただし,必要なファイルを消してしまわないよう,十分に注意して実行します(-rfオプションのfはforceの略)。

●ファイルのリンク作成

 ファイルのリンクとは,あるファイルに別の名前を付けることと同じだと考えればよいでしょう。ファイルの複写を利用することもできますが,複写では2つのファイルの実体ができます。ファイルのリンクではファイルの実体は1つのままで,名前が2つあると考えてください。

 ファイルのリンクを作成するコマンドは,「ln*29」です。実は,リンクにはハード・リンクとシンボリック・リンクの2通りの方法がありますが,ここではよく使うシンボリック・リンクを紹介します。このシンボリック・リンクは,lnコマンドに-sオプションを付加して実行します。


図10 シンボリック・リンクの実行例
file2にaltfile2というシンボリック・リンクを作成しています。

[画像のクリックで拡大表示]

 例えば,カレント・ディレクトリのファイルfile2にaltfile2という別名を割り当てたいとします。実行例を図10[表示]に示します。

 lsコマンドに-Fオプションを指定すると,シンボリック・リンクされたファイル名の後ろには特殊文字「@(アットマーク)」が付加されます。また,-lオプションを指定してlsコマンドを実行すると,先頭の文字(ファイルの種類)が「l」になり,ファイル名altfile2のリンク先(すなわちファイルの実体)はファイルfile2であることが分かります。

●ファイルの種類の判別

 ファイルの種類を判別するコマンドは,fileです。fileコマンドが判別するファイルの種類は,以下の3通りに大別されます。

 例えば,ファイルfile2がテキスト・ファイルだった場合には,より詳細な判別が行われます。英字などの半角文字だけのテキストしか含まない場合は,

と出力されます。「ASCII」は,file2が半角文字の7ビット文字コードで記述されていることを示しています。

●アクセス日時などの修正

 ファイルの最終アクセス日時および最終更新日時*30を変更するコマンドが,touchです。アクセスおよび更新日時を別々に変更することもできます。

 既に存在するファイル名を引数で指定すると,fileコマンドを実行したときの日時に最終更新日時が変更されます。存在しないファイル名を引数指定すると,サイズ0のファイル(空のファイル)がコマンド実行時の日時で作成されます。

●ファイル名探索

 「ファイル名は分かるが,その格納先ディレクトリが分からない」といった場合には,findコマンドで検索します*31。例えば,図7のファイル構成でカレント・ディレクトリが/home/junのときに,ファイルcmd1を検索したい場合には,

と入力します。すると,「./bin/cmd1」と出力されます。すなわち,カレント・ディレクトリ下のbinディレクトリにファイルcmd1が格納されていることが分かります。このように,findコマンドに続いて,検索を開始するディレクトリ(この例ではカレント・ディレクトリ)を指定し,-nameオプションに続いて検索したいファイル名を指示します*32

 ファイルcommandが存在することは確かなのですが,どこのディレクトリに格納されているかが全く予想もできない場合には,

と入力します*33。検索開始ディレクトリに「/」(ルート・ディレクトリ)を指定することで,すべてのディレクトリが検索対象となります。ただし,root権限が必要になります。