[ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
この章は,特殊な形式のファイルを作成する方法(そして,特殊なファイル形
式の一つのディレクトリを削除する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 (libc)Hard Links 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 (library)Symbolic Links section ‘Symbolic Links’ in The GNU C Library Reference Manual.
プログラムは以下のオプションも受け入れます.共通のオプションも参照 してください.
See section バックアップオプション. 上書きされたり削除されたりするそれぞれのファイルのバックアップを作成し ます.
スーパーユーザによるディレクトリのハードリンク作成の試みができるように します.しかし,スーパーユーザでもシステムの制限のため,失敗する可能性 があることに注意して下さい.
既存のリンク先ファイルを削除します.
既存リンク先ファイルを削除するかどうか,プロンプトを表示します.
明示的な,ディレクトリへのシンボリックリンクとなるリンク先が与えられた とき,リンク先を通常のファイルとして扱います.
リンク先が(シンボリックリンクではない)実際のディレクトリのとき,不明瞭
なことはありません.しかし,指定されたリンク先がディレクトリへのシンボ
リックリンクの時,ユーザの要求の扱い方は,二通りあります.ln
は,リンク先を通常のディレクトリとして扱い,それに対するリンクを作成す
ることができます.一方,リンク先を非ディレクトリ — シンボリックリン
ク — として見ることもできます.その場合,ln
は,新しいリン
クを作成する前に,そのシンボリックリンクを削除またはバックアップする必
要があります.デフォルトでは,ディレクトリへのシンボリックリンクである
リンク先を,ディレクトリと同様に扱います.
ハードリンクの代わりにシンボリックリンクを作成します.このオプションは, シンボリックリンクをサポートしていないシステムでは,単にエラーメッセー ジを生成します.
‘-b’で作成されるそれぞれのバックアップファイル名に, suffixを追加します.See section バックアップオプション.
移動(コピー)先のdirectoryを指定します.See section ターゲットディレクトリ.
リンクする前にそれぞれのファイル名を出力します.
‘-b’で作成するバックアップの形式を変更します.method引数 は,‘none’ (または‘off’),‘numbered’ (または‘t’), ‘existing’ (または‘nil’),または‘never’ (または ‘simple’)が利用可能です.See section バックアップオプション.
以下は例です.
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の処理を続けます.
プログラムは以下のオプションも受け入れます.共通のオプションも参照 してください.
作成されるディレクトリのモードをmodeで設定し,それは
chmod
で設定する抽象的なもので,(読み書きと実行を全員に許可す
る)‘a=rwx’から目的のポイントのためにumaskのビットセットを引いたも
のを使用します.See section ファイルの許可.
それぞれの引数に対し,足りない親ディレクトリを作成します.親ディレクト リのモードは‘u+wx’で編集されたumaskに設定します.既存のディレクト リに対する引数は無視します.
作成されるそれぞれのディレクトリに対しメッセージを出力します.これは ‘--parents’とともに用いると最も便利です.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.
[ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
mkfifo
: FIFO(名前付きパイプ)の作成mkfifo
はFIFO(名前付きパイプ(named pipes)とも呼ばれる)
を指定された名前で作成します.概要です.
mkfifo [option] name… |
FIFOは,個別のプロセス間の通信を可能にする特殊なファイル形式です. 一つのプロセスは書き込みで,もう一つは読み込みでFIFOを開き,データは, シェルやその他の通常の名前無しパイプのように流れます.
プログラムは以下のオプションも受け入れます.共通のオプションも参照 してください.
作成されるFIFOのモードをmodeに設定し,それはchmod
で設
定する抽象的なもので,(読み込みと書き出しを全員に許可する)‘a=rw’
から目的のポイントのためにumaskのビットセットを引いたものを使用します.
See section ファイルの許可.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.
[ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
mknod
: ブロックやキャラクタ特殊ファイルの作成mknod
は,FIFO,キャラクタ特殊ファイルや,ブロック特殊ファイ
ルを指定された名前で作成します.概要です.
mknod [option]… name type [major minor] |
上記の“特殊ファイル形式”と異なり,特殊ファイル(special file)と
いう用語は,Unix上で技術的な意味があります.それはデータを生成または受
信するものです.これは通常,ハードウェアの物理的な部分に対応します.
(これらのファイルは,通常,システム設定時に作成されます.)
mknod
コマンドは,この形式のファイルを作成するものです.その
ようなデバイスは,一度に一文字または一度に一“ブロック”(多くの文字)読
み込むことが可能で,そのため,ブロック特殊(block special)ファイ
ルとキャラクタ特殊(character special)ファイルがあると我々は述べ
ています.
nameの後の引数は作成するファイルの形式を指定します.
FIFOに対応します.
ブロック特殊ファイルに対応します.
キャラクタ特殊ファイルに対応します.
ブロックやキャラクタ特殊ファイルを作成しているとき,メジャーとマイナー デバイス番号をファイル形式の後に与える必要があります.メジャーまたはマ イナーのデバイス番号が‘0x’や‘0X’で始まる場合,それは16進数と して解釈されます.それ以外で‘0’で始まる場合は八進数,それ以外では 十進数です.
プログラムは以下のオプションも受け入れます.共通のオプションも参照 してください.
作成されるファイルのモードをmodeに設定し,それはchmod
で設定する抽象的なもので,‘a=rw’から目的のポイントのためにumaskの
ビットセットを引いたものを使用します.See section ファイルの許可.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.
[ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
readlink
: シンボリックリンクの対象を出力readlink
は,サポートされている二つのモードの一つで動作します.
readlink
は,与えられたシンボリックリンクの値を出力します.
readlink
がシンボリックリンクのパス名以外の引数で呼び出される
場合,出力を生成せず,ゼロ以外の終了コードで終了します.
readlink
は,‘.’,‘..’ も,繰返されるパス分離子(‘/’)もシンボ
リックリンクも含めず,与えられた絶対的なファイル名を出力します.構成要
素が足りない,または利用不可能なパスでは,出力を生成せずゼロ以外の終了
コードで終了します.
readlink [option] file |
デフォルトで,readlink
はreadlinkモードで処理します.
プログラムは以下のオプションを受け入れます.共通のオプションも参照 して下さい.
canonicalizeモードで実行します.
後置される改行を出力しません.
ほとんどのエラーメッセージを抑制します.
エラーメッセージを報告します.
readlink
は,OpenBSD 2.1で最初に書かれました.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.
[ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
rmdir
: 空のディレクトリの削除rmdir
は空のディレクトリを削除します.概要です.
rmdir [option]… directory… |
directory引数が既存の空のディレクトリを参照していない場合,エラー となります.
プログラムは以下のオプションも受け入れます.共通のオプションも参照 してください.
ディレクトリが空でないため,それぞれ単独であるディレクトリ削除の失敗を 無視します.
directoryを削除し,それぞれのdirectoryの構成要素の削除を試
みます.そのため,例えば,‘rmdir -p a/b/c’は‘rmdir a/b/c a/b
a’に似ています.同様に,これらのディレクトリが空でないと判明した場合は
失敗します.そのような失敗で,診断を引き起こし,rmdir
を失敗
で終了させないため,‘--ignore-fail-on-non-empty’オプションを使
用してください.
削除に成功したそれぞれの診断を提唱します.directoryは削除されま す.
空でないディレクトリの(再帰的な)削除方法は,See section rm
: ファイルやディレクトリの削除.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.
[ < ] | [ > ] | [ << ] | [上] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
unlink
: unlinkシステムコールでファイルを削除unlink
は,単一の指定されたファイル名を削除します.それは,シ
ステムが提供するunlink
関数の最小のインターフェースです.
See (libc)Deleting Files section ‘Deleting Files’ in The GNU C Library Reference Manual. 概要です.
unlink filename |
システムには,unlink
を削除するディレクトリ名として使用可能なも
のもあります.その他に,特権ユーザだけがそうすることが可能なものもあり
ます.GNUシステムでは,unlink
でディレクトリ名を削除することはあ
りません.
デフォルトで,unlink
は‘--help’と‘--version’オ
プションを尊重します.それによって,‘--help’や
‘--version’と命名されたファイルの削除がちょっと難しくなるので,
環境変数POSIXLY_CORRECT
が設定されているときは,unlink
はそのようなコマンドライン引数をオプションではなくオペランドとして扱い
ます.
終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.
[ << ] | [ >> ] | [冒頭] | [目次] | [見出し] | [ ? ] |
この文書は新堂 安孝によって2009年9月22日にtexi2html 1.82を用いて生成されました。