[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この章は,特殊な形式のファイルを作成する方法(そして,特殊なファイル形
式の一つのディレクトリを削除するrmdir
方法)を記述します.
Unixのようなオペレーティングシステムでは,他のものより特殊なファイル形 式は著しく少ないのですが,すべてのものを通常のファイル (normal files)と差異の無いバイトストリームとして扱うことが可能だとい うわけではありません.例えば,ファイルを作成したり削除したりするとき, システムはこの情報を記録する必要があり,それはディレクトリ (directory) -- 特殊な形式のファイル -- で行います.興味があれば,ディ レクトリを通常のファイルとして読み込むことも可能ですが,システムにその 作業をさせるために,ファイルのバイト上で構造,特定の順序を強制する必要 があります.このためそれは"特殊な"形式のファイルとなります.
ディレクトリ以外では,特殊なファイル形式は,名前付きパイプ(FIFO),シン ボリックリンク,ソケット,そして特殊ファイル(special files)と呼 ばれるものを含みます.
12.1 link : linkシステムコールでハードリンクを作成する | Make a hard link via the link syscall | |
12.2 ln : ファイル間にリンクを作成 | Make links between files. | |
12.3 mkdir : ディレクトリの作成 | Make directories. | |
12.4 mkfifo : FIFO(名前付きパイプ)の作成 | Make FIFOs (named pipes). | |
12.5 mknod : ブロックやキャラクタ特殊ファイルの作成 | Make block or character special files. | |
12.6 readlink : シンボリックリンクの対象を出力 | Print the referent of a symbolic link. | |
12.7 rmdir : 空のディレクトリの削除 | Remove empty directories. | |
12.8 unlink : unlinkシステムコールでファイルを削除 | Remove files via the unlink syscall |
link
: linkシステムコールでハードリンクを作成する
link
は単一のハードリンクを一度に作成します.それは,システム
が提供するlink
関数への最小のインターフェースです.See section `Hard Links' in The GNU C Library Reference Manual. 概要です.
link filename linkname |
filenameは既存のファイルにする必要があり,linkname既存のディ
レクトリに存在しないものを指定する必要があります.link
はリン
クを作成するために,単純にlink (filename, linkname)
を呼び出します.
ln
: ファイル間にリンクを作成
ln
は,ファイル間のリンクを作成します.デフォルトで,それはハー
ドリンクを作成します.`-s'を用いると,シンボリック(または
ソフト(soft))リンクを作成します.概要です.
ln [option]... target [linkname] ln [option]... target... directory |
ln
はそのディレクト
リ内のそれぞれのtargetファイルに,targetの名前を使用しなが
らリンクを作成します.(しかし,以下の`--no-dereference'オプショ
ンの記述を参照してください.)
ln
は二番目から一番目へのリ
ンクを作成します.
ln
は,現在のディレクトリ
のそのファイルにリンクを作成します.
ln
は既存のファイルを削除しません.ln
に既存のファイ
ルの名前を変えさせるために,`--backup'オプションを使用してくだ
さい.
ハードリンク(hard link)は,既存のファイルの別名です.リンクとオ リジナルは区別できません.技術的には,それらは同じinodeを共有し,inode はファイルに関する必要な情報をすべて含んでいます -- 実際,inodeがファ イルであると言っても間違いではありません.既存のすべての実装で は,ディレクトリにハードリンクを作成できず,ハードリンクはファイルシス テム間をまたぐことができません.(しかしながら,これらの制限は POSIXとマッチしません.)
一方,シンボリックリンク(Symbolic links) (短く言うと symlinks)は,リンクファイルが実際には名前の異なるファイルを参照 する特殊なファイル形式です(すべてのカーネルがサポートしているわけでは ありません.System V release 3(とそれより古いもの)はsymlinkがありませ ん).ほとんどの処理(開く,読み込む,書き出す等)は,シンボリックリンク を通じて行われ,カーネルは自動的にリンクをdereferencesし,リンク 先を処理します.しかし,リンク先ではなくリンクファイル自身に作用する (例えば削除)処理もあります.See section `Symbolic Links' in The GNU C Library Reference Manual.
プログラムは以下のオプションも受け入れます.2. 共通のオプションも参照 してください.
リンク先が(シンボリックリンクではない)実際のディレクトリのとき,不明瞭
なことはありません.しかし,指定されたリンク先がディレクトリへのシンボ
リックリンクの時,ユーザの要求の扱い方は,二通りあります.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の処理を続けます.
プログラムは以下のオプションも受け入れます.2. 共通のオプションも参照 してください.
chmod
で設定する抽象的なもので,(読み書きと実行を全員に許可す
る)`a=rwx'から目的のポイントのためにumaskのビットセットを引いたも
のを使用します.See section 26. ファイルの許可.
mkfifo
: FIFO(名前付きパイプ)の作成
mkfifo
はFIFO(名前付きパイプ(named pipes)とも呼ばれる)
を指定された名前で作成します.概要です.
mkfifo [option] name... |
FIFOは,個別のプロセス間の通信を可能にする特殊なファイル形式です. 一つのプロセスは書き込みで,もう一つは読み込みでFIFOを開き,データは, シェルやその他の通常の名前無しパイプのように流れます.
プログラムは以下のオプションも受け入れます.2. 共通のオプションも参照 してください.
chmod
で設
定する抽象的なもので,(読み込みと書き出しを全員に許可する)`a=rw'
から目的のポイントのためにumaskのビットセットを引いたものを使用します.
See section 26. ファイルの許可.
mknod
: ブロックやキャラクタ特殊ファイルの作成
mknod
は,FIFO,キャラクタ特殊ファイルや,ブロック特殊ファイ
ルを指定された名前で作成します.概要です.
mknod [option]... name type [major minor] |
上記の"特殊ファイル形式"と異なり,特殊ファイル(special file)と
いう用語は,Unix上で技術的な意味があります.それはデータを生成または受
信するものです.これは通常,ハードウェアの物理的な部分に対応します.
(これらのファイルは,通常,システム設定時に作成されます.)
mknod
コマンドは,この形式のファイルを作成するものです.その
ようなデバイスは,一度に一文字または一度に一"ブロック"(多くの文字)読
み込むことが可能で,そのため,ブロック特殊(block special)ファイ
ルとキャラクタ特殊(character special)ファイルがあると我々は述べ
ています.
nameの後の引数は作成するファイルの形式を指定します.
ブロックやキャラクタ特殊ファイルを作成しているとき,メジャーとマイナー デバイス番号をファイル形式の後に与える必要があります.メジャーまたはマ イナーのデバイス番号が`0x'や`0X'で始まる場合,それは16進数と して解釈されます.それ以外で`0'で始まる場合は八進数,それ以外では 十進数です.
プログラムは以下のオプションも受け入れます.2. 共通のオプションも参照 してください.
chmod
で設定する抽象的なもので,`a=rw'から目的のポイントのためにumaskの
ビットセットを引いたものを使用します.See section 26. ファイルの許可.
readlink
: シンボリックリンクの対象を出力
readlink
は,サポートされている二つのモードの一つで動作します.
readlink
は,与えられたシンボリックリンクの値を出力します.
readlink
がシンボリックリンクのパス名以外の引数で呼び出される
場合,ゼロ以外の終了コードで終了します.
readlink
は,`.',`..' も,繰返されるパス分離子(`/')もシンボ
リックリンクも含めず,与えられた絶対的なファイル名を出力します.構成要
素が足りない,または利用不可能なパスでは,ゼロ以外の終了コードで終了し
ます.
readlink [option] file |
デフォルトで,readlink
はreadlinkモードで処理します.
プログラムは以下のオプションを受け入れます.2. 共通のオプションも参照 して下さい.
readlink
は,OpenBSD 2.1で最初に書かれました.
rmdir
: 空のディレクトリの削除
rmdir
は空のディレクトリを削除します.概要です.
rmdir [option]... directory... |
directory引数が既存の空のディレクトリを参照していない場合,エラー となります.
プログラムは以下のオプションも受け入れます.2. 共通のオプションも参照 してください.
rmdir
を失敗
で終了させないため,`--ignore-fail-on-non-empty'オプションを使
用してください.
空でないディレクトリの(再帰的な)削除方法は,See section 11.5 rm
: ファイルやディレクトリの削除.
unlink
: unlinkシステムコールでファイルを削除
unlink
は,単一の指定されたファイル名を削除します.それは,シ
ステムが提供するunlink
関数の最小のインターフェースです.
See section `Deleting Files' in The GNU C Library Reference Manual. 概要です.
unlink filename |
システムには,unlink
を削除するディレクトリ名として使用可能なも
のもあります.その他に,特権ユーザだけがそうすることが可能なものもあり
ます.GNUシステムでは,unlink
でディレクトリ名を削除することはあ
りません.
デフォルトで,unlink
は`--help'と`--version'オ
プションを尊重します.それによって,--help
や--version
と
命名されたファイルの削除がちょっと難しくなるので,環境変数
POSIXLY_CORRECT
が設定されているときは,unlink
はそのよ
うなコマンドライン引数をオプションではなくオペランドとして扱います.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |