この章は,特殊な形式のファイルを作成する方法(と,特殊なファイル形式の
一つのディレクトリを削除するrmdir
方法)を記述します.
Unixのようなオペレーティングシステムには,特殊なファイル形式は,他より 著しく少ないのですが,すべてが通常のファイルと差のないバ イトストリームのみとして扱うことはできません.例えば,ファイルを作成し たり削除したりするとき,システムはこの情報を記録する必要があり,それは ディレクトリ---特殊な形式のファイル---で行います.ディレクトリを 通常のファイルとして読み込むこともできますが,気になる場合は,システム がその仕事を行うために,ファイルのバイト上で構造,特定の順序を強制する 必要があります.このためそれは"特殊な"形式のファイルとなります.
ディレクトリ以外では,特殊なファイル形式は,名前付きパイプ(FIFO),シンボ リックリンク,ソケット,そして特殊ファイルと呼ばれるものを含みます.
ln
: ファイル間にリンクを作成
ln
は,ファイル間のリンクを作成します.デフォルトで,それはハード
リンクを作成します.`-s'を用いると,シンボリック(またはソフト)
リンクを作成します.構文は以下のとおりです.
ln [option]... target [linkname] ln [option]... target... directory
ln
はそのディレクト
リ内のそれぞれのtargetファイルに,targetの名前を使用しながら
リンクを作成します.(しかし,以下の`--no-dereference'オプションの記
述を参照してください.)
ln
は2番目から1番目へのリンク
を作成します.
ln
は,現在のディレクトリ
のそのファイルにリンクを作成します.
ln
は既存のファイルを削除しません.ln
に既存のファイルの名前
を変えさせるために,`--backup'オプションを使用してください.
ハードリンクは,既存のファイルの別名です.リンクとオリジナルは区別 できません.技術的には,それらは同じinodeを共有し,inodeはファイルに関す る必要な情報をすべて含みます---実際,inodeがファイルであると言っ ても間違いではありません.既存のすべての実装では,ディレクトリにハードリ ンクを作成できず,ハードリンクはファイルシステム間をまたぐことができませ ん.(しかしながら,これらの制限はPOSIXと一致しません.)
一方,シンボリックリンク (短く言うとsymlinks)は,リンクファ イルが実際には名前の異なるファイルを参照する特殊なファイル形式です(すべ てのカーネルがサポートしているわけではありません.System V release 3(と それより古いもの)はsymlinkがありません).ほとんどの処理(開く,読み込む, 書き出す等)は,シンボリックリンクを通じて行われ,カーネルは自動的にリン クをdereferencesし,リンク先を処理します.しかし,リンク先ではなく リンクファイル自身に作用する(例えば削除)処理もあります.See section `Symbolic Links' in The GNU C Library Reference Manual.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
ln
は,リン
ク先を通常のディレクトリとして扱い,それに対するリンクを作成することがで
きます.一方,リンク先を非ディレクトリ---シンボリックリンク---として見る
こともできます.その場合,ln
は,新しいリンクを作成する前に,その
シンボリックリンクを削除またはバックアップする必要があります.デフォルト
では,ディレクトリへのシンボリックリンクであるリンク先を,ディレクトリと
同様に扱います.
以下は例です.
ln -s /some/name # creates link ./name pointing to /some/name ln -s /some/name myname # creates link ./myname pointing to /some/name ln -s a b .. # creates links ../a and ../b pointing to ./a and ./b
mkdir
: ディレクトリの作成
mkdir
は指定された名前でディレクトリを作成します.構文は以下のとお
りです.
mkdir [option]... name...
nameが既存のファイルでディレクトリではない場合,mkdir
は標準
エラー出力に警告メッセージを出力し,残っているnameを処理した後,1
のステータスで終了します.nameが既存のディレクトリで,-p オプショ
ンが与えられていないときも同じです.nameが既存のディレクトリで,-p
オプションが与えられている場合,mkdir
はそれを無視します.すなわち,
mkdir
は警告の出力も,エラーの発生も,(-m オプションが与えられてい
ても)ディレクトリのモードの変更もせず,残りのnameの処理を続けます.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
chmod
で
設定する抽象的なもので,(読み書きと実行を全員に許可する)`a=rwx'から
目的のポイントのためにumaskのビットセットを引いたものを使用します.
See section ファイルのパーミッション.
mkfifo
: FIFO(名前付きパイプ)の作成
mkfifo
はFIFO(名前付きパイプとも呼ばれる)を指定された名前で作成しま
す.構文は以下のとおりです.
mkfifo [option] name...
FIFOは,通信に依存するプロセスを可能にする特殊なファイル形式です. 一つのプロセスは書き込みで,もう一つは読み込みでFIFOを開き,データは,シェ ルやその他の通常の名前なしパイプのように流れます.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
chmod
で設定する
抽象的なもので,(読み込みと書き出しを全員に許可する)`a=rw'から目的
のポイントのためにumaskのビットセットを引いたものを使用します.
See section ファイルのパーミッション.
mknod
: ブロックやキャラクタ特殊ファイルの作成
mknod
は,FIFO,キャラクタ特殊ファイルや,ブロック特殊ファイルを指
定された名前で作成します.構文は以下のとおりです.
mknod [option]... name type [major minor]
上記の"特殊ファイル形式"と異なり,特殊ファイルという用語は,Unix
上で技術的な意味があります.それはデータを生成または受信するものです.こ
れは通常,ハードウェアの物理的な部分に対応します.(これらのファイルは通
常システム設定時に作成されます.) mknod
コマンドは,この形式のファ
イルを作成するものです.そのようなデバイスは,一度に一文字または一度に一
"ブロック"(多くの文字)読み込むことができ,そのため,ブロック特殊
ファイルとキャラクタ特殊ファイルがあると言っているのです.
nameの後の引数は作成するファイルの形式を指定します.
ブロックやキャラクタ特殊ファイルを作成しているとき,メジャーとマイナーデ バイス番号をファイル形式の後に与える必要があります.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
chmod
で設定
する抽象的なもので,`a=rw'から目的のポイントのためにumaskのビットセッ
トを引いたものを使用します.See section ファイルのパーミッション.
rmdir
: 空のディレクトリの削除
rmdir
は空のディレクトリを削除します.構文は以下のとおりです.
rmdir [option]... directory...
directory引数が既存の空のディレクトリを参照していない場合,エラー となります.
プログラムは以下のオプションも受け入れます.section 共通のオプション,も参照 してください.
rmdir
を失敗で終了させ
ないため,`--ignore-fail-on-non-empty'オプションを使用してください.
空でないディレクトリの(再帰的な)削除方法は,See section rm
: ファイルやディレクトリの削除.
Go to the first, previous, next, last section, table of contents.