[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

6. 基本処理

この章は,基本的なファイル操作に対するコマンドを記述します.コピー,移動 (名前の変更),そして削除(リムーブ)です.


6.1 cp: ファイルとディレクトリのコピー

cpは,ファイル(または追加でディレクトリ)をコピーします.コピーは オリジナルから完全に独立しています.一つのファイルをもう一つにコピーする, または,任意の多くのファイルを目的のディレクトリにコピーすることのいずれ かが可能です.構文は以下の通りです.

 
cp [option]… source dest
cp [option]… sourcedirectory

最後の引数が既存のディレクトリを指す場合,cpはそれぞれの sourceファイルをそのディレクトリに(同じ名前のままで)コピーします. それ以外で,2つのファイルが与えられた場合,最初のものを2番目のものにコピー します.最後の引数がディレクトリでなく,2つ以上のオプションでない引数が 与えられた場合エラーとなります.

一般的に,ファイルは読み込まれたとおりに書き込まれます.例外は,以下の `--sparse'オプションを参照してください.

デフォルトで,cpはディレクトリをコピーしません(以下の`-r'を 参照してください).

cpは一般的に,以下の例外はありますが,ファイルの自分自身へのコピー を拒絶します.`--force --backup'が同一のsourcedestで 指定して,通常のファイルを参照する場合,cpは,通常の方法 (see section バックアップオプション)で指定されたように,通常または番号付きのバックアッ プファイルを作成します.これは,変更前に既存のファイルのバックアップを単 に作成したいとき役に立ちます.

プログラムは以下のオプションも受け入れます.共通のオプション,も参照 してください.

` -a'
` --archive'

コピー時に元のファイルの構造と属性を可能な限り保持します(しかし,ディレ クトリ構造は保持しません).`-dpR'と同じです.

` -b'
` --backup'

上書きされたり削除されたりするそれぞれのファイルのバックアップを作成しま す.See section バックアップオプション.

` -d'
` --no-dereference'

シンボリックリンクを,それが示すファイルをコピーするのではなく,シンボリッ クリンクとしてコピーし,コピーのソースファイル間のハードリンクを保持しま す.

` -f'
` --force'

既存の目的のファイルを削除します.

` -i'
` --interactive'

既存の通常の目的ファイルを上書きするかどうか,プロンプトを表示します.

` -l'
` --link'

ディレクトリ以外はコピーの代わりにハードリンクを作成します.

` -p'
` --preserve'

元のファイルの所有者,グループ,許可,そしてタイムスタンプを保持します.

` -P'
` --parents'

ターゲットディレクトリに,スラッシュと指定されたソースファイルの名前を追 加した,それぞれの目的ファイルの名前を作成します.cpに与える最後 の引数は,既存のディレクトリ名にする必要があります.例えば,以下のような コマンドを入力します.

 
cp --parents a/b/c existing_dir

これはファイル`a/b/c'を`existing_dir/a/b/c'にコピーし,存在し ないあらゆる中間ディレクトリを作成します.

` -r'

再帰的にディレクトリをコピーし,ディレクトリでないものとシンボリックリン クでないもの(すなわちFIFOと特別なファイル)を,通常のファイルのようにコピー します.これは,それぞれのソースファイルでデータを読み込み,目的のものに それを書き出すということを意味します.FIFOのような特殊ファイルと,特に `/dev'で見つかるディレクトリにcp -rを適用すると通常失敗しま す.ほとんどの場合,cp -rはFIFOと`/dev/console'のような特殊 ファイルからいつまでも読み込むことで待ち続け,`/dev/zero'をコピーす る場合,それは目的のディスクをいっぱいにします.特殊ファイルをコピーした い場合,その内容をコピーするためそれらを読み込む代わりに,特殊な性質を妨 げるため,`--recursive' (`-R')を使用してください.

` -R'
` --recursive'

ディレクトリ以外のものを避けながら,再帰的にディレクトリをコピーします (真上の`-r'とは対照的です).

` --sparse=when'

まばらなファイル--物理的なディスクブロックで発生しないゼロ バイトの列--を含みます.`read'システムコールはこれらをゼロとして読 み込みます.多くのバイナリファイルは多くのゼロバイトの連続を含むので,こ れで,かなりのディスクスペースと保存し速度を増加することがどちらも可能で す.デフォルトでcpは,情報の発見的手法を用い,入力ソースファイル で穴を見付け,対応する出力ファイルに同様にまばらにします.

whenの値は以下の一つになります.

` auto'

デフォルトの動作:入力ファイルがまばらの場合,出力ファイルはまばらになり ます.

` always'

常に,出力ファイルをまばらにします.まばらなファイルをサポートしないファ イルシステム(最も顕著な例は,SGI IRIX 5.3とそれ以前の`efs'ファイル システム)に存在する入力ファイルで,出力ファイルはそれ以外のファイルシス テムのときこれは役に立ちます.

` never'

出力ファイルをまばらにしません.このオプションのためのアプリケーションが 見つかった場合,我々に知らせてください.

` -s'
` --symbolic-link'

ディレクトリでないものをコピーする代わりにシンボリックリンクを作成します. すべてのソースファイル名は,目的ファイルが現在のディレクトリにある場合以 外,絶対的である(`/'で始まる)必要があります.シンボリックリンクをサ ポートしないシステムでは,このオプションは結果としてエラーメッセージを返 すだけです.

` -S suffix'
` --suffix=suffix'

それぞれの`-b'でのバックアップファイルにsuffixを追加します. See section バックアップオプション.

` -u'
` --update'

ディレクトリ以外の,同じまたはより新しい修正時刻を持つ既存の目的物をコピー しません.

` -v'
` --verbose'

コピーする前にそれぞれのファイル名を出力します.

` -V method'
` --version-control=method'

`-b'で作成するバックアップの形式を変更します.method引数は, `numbered' (または`t'),`existing' (または`nil'),ま たは`never' (または`simple')が可能です.See section バックアップオプション.

` -x'
` --one-file-system'

コピーを開始したファイルシステムと異なるサブディレクトリを省略します.し かし,マウントポイントのディレクトリはコピーされます


6.2 dd: ファイルを変換してコピー

ddは,変更可能なI/Oブロックサイズを用いて,(デフォルトで,標準入 力から標準出力に)ファイルをコピーし,オプションの動作でそれを変更します. 構文は以下のとおりです.

 
dd [option]…

プログラムは,以下のオプションも受け入れます.共通のオプション,も参 照してください.

以下(bytesblocks)の数値的な値のオプションは,乗算を続ける ことができます.それは,`b'=512,`c'=1,`w'=2, `xm'=mや,`k'=1024のようなあらゆるブロックサイズ接 尾子です(see section ブロックサイズ).

` if=file'

標準入力の代わりにfileから読み込みます.

` of=file'

標準出力の代わりにfileに書き出します.`conv=notrunc'が与えら れていない場合,ddfileをゼロバイト(または,`seek='で 指定されたサイズ)に切り詰めます.

` ibs=bytes'

一度にbytesバイト読み込みます.

` obs=bytes'

一度にbytesバイト書き出します.

` bs=bytes'

一度にbytesバイト読み書きします.これは`ibs'と`obs'に優 先します.

` cbs=bytes'

一度にbytesバイト変換します.

` skip=blocks'

コピーする前に入力ファイルで,blocks `ibs'バイトブロックを省 略します.

` seek=blocks'

コピーする前に出力ファイルで,blocks `ibs'バイトブロックを省 略します.

` count=blocks'

ファイルの終りまでのすべての代わりに,入力ファイルからblocks `ibs'バイトブロックコピーします.

` conv=conversion[,conversion]…'

conversion引数で指定されたようにファイルを変換します.(カンマの回 りにスペースはありません.)

以下の変換です.

` ascii'

EBCDICをASCIIに変換します.

` ebcdic'

ASCIIをEBCDICに変換します.

` ibm'

ASCIIを別のEBCDICに変換します.

` block'

入力のそれぞれの行に対し,入力の改行をスペースに置換し,必要なスペースを 埋め込みながら,`cbs'バイト出力します.

` unblock'

それぞれの`cbs'の大きさの入力ブロックで,末尾のスペースを改行に置換 します.

` lcase'

大文字を小文字に変換します.

` ucase'

小文字を大文字に変換します.

` swab'

入力バイトのすべての組を入れ替えます.GNU ddは他と異なり,偶数バ イトを読み込んだとき働きます--最後のバイトは,単にコピーされます.(入れ 替えるバイトがないからです).

` noerror'

読み込みエラー後も続けます.

` notrunc'

出力ファイルを切り詰めません.

` sync'

すべての入力ブロックを,後置するゼロバイトを埋め込み`ibs'サイズにし ます.


6.3 install: ファイルのコピーと属性の設定

installは,許可モードと,可能な場合は所有者とグループ設定しながら ファイルをコピーします.構文は以下のとおりです.

 
install [option]… source dest
install [option]… sourcedirectory
install -d [option]… directory

これらの最初のものは,sourceファイルはdest目的ファイルにコピー されます.2番目では,それぞれのsourceファイルは目的の directoryにコピーされます.最後では,それぞれのdirectory(と 足りない親ディレクトリ)がコピーされます.

installcpに似ていますが,目的ファイルの属性を制御するこ とが可能です.それは,プログラムを目的のディレクトリにコピーするとき, Makefileで一般的に使用されます.それ自身にファイルをコピーすることは拒否 されます.

プログラムは,以下のオプションも受け入れます.共通のオプション,も参 照してください.

` -b'
` --backup'

上書きされたり削除されたりするファイルのバックアップを作成します. See section バックアップオプション.

` -c'

無視されます.古いUnixバージョンのinstallの互換性のためです.

` -d'
` --directory'

与えられたそれぞれのディレクトリと足りない親ディレクトリを,コマンドライ ンで与えられたやデフォルトの所有者,グループとモードに設定しながら作成し ます.親ディレクトリも与えられた属性で作成されます.(これはSunOS 4.x installと異なり,そこではディレクトリはデフォルトの属性が与えられ ます.)

` -g group'
` --group=group'

インストールされるファイルやディレクトリのグループ所有権を,group に設定します.デフォルトは,プロセスの現在のグループです.groupは, グループ名や数値的なグループIDが可能です.

` -m mode'
` --mode=mode'

インストールされるファイルやディレクトリの許可をmodeに設定し,それ は8進数やchmodの象徴的なモードが可能で,0が出発点となります (see section ファイルのパーミッション).デフォルトモードは0755です--所有者の読み書 き実行,グループとそれ以外は読み込みと実行です.

` -o owner'
` --owner=owner'

installが適切な特権(ルートとして実行)がある場合,インストールされ るファイルやディレクトリの所有権はownerに設定されます.デフォルト はrootです.ownerは,ユーザ名または,数値のユーザIDが可能で す.

` -p'
` --preserve-timestamps'

インストールされたそれぞれのファイルの,最後にアクセスした時間と最後に編 集した時間を,対応するそれぞれの元ファイルに一致させます.このオプション なしでファイルがインストールされたとき,最後にアクセスした時間と最後に編 集した時間は,どちらもインストールされた時間に設定されます.このオプショ ンは,最後にインストールされた時ではなく,最後にビルドされた時を追跡し続 けるため,インストールされたファイルの最後に編集された時間を使用する場合, 役に立ちます.

` -s'
` --strip'

インストールされたバイナリ実行形式から,シンボルテーブルを取り除きます.

` -S suffix'
` --suffix=suffix'

`-b'で作成されるそれぞれのバックアップファイルに,suffixを追 加します.See section バックアップオプション.

` -v'
` --verbose'

コピーする前に,それぞれのファイル名を出力します.

` -V method'
` --version-control=method'

`-b'で作成されるバックアップの形式を変更します.method引数は, `numbered' (または`t'),`existing' (または`nil'),ま たは,`never' (または`simple')が可能です.See section バックアップオプション.


6.4 mv: ファイルの移動(名前の変更)

mvは,ファイル(やディレクトリ)を移動したり名前を変更したりします. 構文は以下のとおりです.

 
mv [option]… source dest
mv [option]… sourcedirectory

最後の引数が,既存のディレクトリを示す場合,mvは,それ以外の与え られたそれぞれのファイルを,同じファイル名で,そのディレクトリに移動しま す.それ以外では,2つのファイルが与えられた場合,1番目の名前を2番目に変 更します.最後の引数がディレクトリではなく,2つ以上のファイルが与えられ た場合,エラーとなります.

mvでは,ファイルシステム間のファイル移動は通常のファイルのみ可能 です.

目的ファイルが存在し,通常の書き込みができない,標準入力が端末,そして `-f'または`--force'オプションが与えられていない場合,mv はユーザにファイルを置換するかどうかを促すプロンプトを表示します.(ファ イルを所有していて,書き込み権限がそのディレクトリにあるはずです.) `y'や`Y'で始まらない返答の場合,ファイルは省略されます.

プログラムは以下のオプションも受け入れます.共通のオプション,も参照 してください.

` -b'
` --backup'

上書きされたり削除されたりするファイルのバックアップを作成します. See section バックアップオプション.

` -f'
` --force'

既存の目的ファイルを削除し,ユーザにプロンプトを表示しません.

` -i'
` --interactive'

許可に因らず,それぞれの既存の目的ファイルを上書きするかどうかプロンプト を表示します.`y'や`Y'で始まらない返答の場合,ファイルは省略さ れます.

` -u'
` --update'

同じまたは新しい編集時間を持つ既存の目的物でディレクトリ以外のものを移動 しません.

` -v'
` --verbose'

移動する前にそれぞれのファイル名を出力します.

` -S suffix'
` --suffix=suffix'

`-b'で作成されるそれぞれのバックアップファイルに,suffixを追 加します.See section バックアップオプション.

` -V method'
` --version-control=method'

`-b'で作成されるバックアップの形式を変更します.method引数は, `numbered' (または`t'),`existing' (または`nil'),ま たは,`never' (または`simple')が可能です.See section バックアップオプション.


6.5 rm: ファイルやディレクトリの削除

rmは与えられたfileを削除します.デフォルトでそれはディレク トリを削除しません.構文は以下のとおりです.

 
rm [option]… [file]…

ファイルが通常の書き込みができない,標準入力が端末,そして`-f'また は`--force'オプションが与えられていない場合,または,`-i'また は`--interactive'オプションが与えられている場合,rmは ユーザにファイルを削除するかどうかを促すプロンプトを表示します.`y' や`Y'で始まらない返答の場合,ファイルは省略されます.

プログラムは以下のオプションも受け入れます.共通のオプション,も参照 してください.

` -d'
` --directory'

rmdirの代わりにunlinkでディレクトリを削除し,アンリンクを 試みる前にディレクトリが空である必要はありません.適切な特権がある場合の み動作します.ディレクトリのアンリンクはディレクトリ内のあらゆるファイル を参照できなくするため,この後でファイルシステムにfsckした方が賢 明です.

` -f'
` --force'

存在しないファイルを無視し,ユーザにプロンプトを表示しません.前にある `--interactive' (`-i')オプションを無視します.

` -i'
` --interactive'

それぞれのファイルを削除するかどうかプロンプトを表示します.`y'や `Y'で始まらない返答の場合,ファイルは省略されます.前にある `--force' (`-f')オプションを無視します.

` -r'
` -R'
` --recursive'

ディレクトリの内容を再帰的に削除します.

` -v'
` --verbose'

削除する前にそれぞれのファイル名を出力します.

よくある問題の一つは,`-'で始まる名前を持つファイルの削除の方法です. GNU rmでは,引数を解析するgetopt関数を使用するすべてのプロ グラムに似て,以下のすべての引数はオプションでないことを示す`--'オ プションを使用します.現在のディレクトリの`-f'というファイル名を削 除するため,以下のどちらかを入力できます.

 
rm -- -f

または,

 
rm ./-f

この目的に対する,Unix rmプログラムの単一の`-'の使用は, getoptの標準構文の開発以前のものです.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.