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

6. 基本処理

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


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

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

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

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

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

デフォルトで,cpはディレクトリをコピーしません.しかし, `-R',`-a',そして`-r'オプションでは,cp は元のディレクトリを下り,対応するコピー先のディレクトリにファイルをコピー することで,再帰的にコピーします.

デフォルトで,cpは再帰的にコピーしないときのみ,シンボリックリ ンクをたどります.このデフォルトは,`--no-dereference' (`-d'),`--dereference' (`-L'),そして`-H'オ プションで優先することが可能です.これらのオプションの一つ以上が指定され ている場合,最後のものが他のものに対して,そのまま優先します.

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

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

` -a'
` --archive'

コピー時に元のファイルの構造と属性を可能な限り保持します(しかし,ディレ クトリ構造の保持は試みません.すなわち,`ls -U'はコピーされているディ レクトリの項目を,異なる順序でリストアップすることが可能です). `-dpR'と同じです.

` -b'
` --backup[=method]'

See section バックアップオプション. 上書きされたり削除されたりするそれぞれのファイル のバックアップを作成します.特殊な場合として,強制とバックアップのオプショ ンが指定され,sourcedestが同じ名前で存在しているとき,通常 のファイルとして,cpsourceのバックアップを作成します.こ のオプションの組合わせの役に立つ応用の一つは,以下の小さなBourneシェルス クリプトです.

 
#!/bin/sh
# Usage: backup FILE...
# Create a GNU-style backup of each listed FILE.
for i in "$;" do
  cp --backup --force "$i" "$i"
done
` -d'
` --no-dereference'

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

` -f'
` --force'

このオプションを使用せずコピーし,コピー先のファイルが存在し書き込みで開 くことができないとき,コピーは失敗します.しかし,`--force'を用いた 場合,コピー先のファイルが開けないとき,cpはそれをアンリンクし, もう一度開こうとします.この動作と`--link'と`--symbolic-link' でそれを可能にすることと異なり,それによってコピー先ファイルは開かれるこ となく,無条件にアンリンクされます.`--remove-destination'の記述も 参照してください.

` -H'

コマンドライン引数がシンボリックリンクを指定している場合,シンボリックリ ンクではなく,ファイルをその位置にコピーします.しかし,再帰的な横断で遭 遇するあらゆるシンボリックリンクを(その元を保存して)コピーします.

` -i'
` --interactive'

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

` -l'
` --link'

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

` -L'
` --dereference'

常にシンボリックリンクをたどります.

` -p'
` --preserve'

元のファイルの所有者,グループ,許可,そしてタイムスタンプを保持します. このオプションがないとき,それぞれのコピー先のファイルは,元のファイルに 対応するパーミッションで作成され,umaskで設定されているビットがなくなり ます.See section ファイルのパーミッション.

` -P'
` --parents'

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

 
cp --parents a/b/c existing_dir

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

警告:`-P'の意味はPOSIXに従うため,将来変更されるでしょう. 古い意味に対しては`--parents'を使用し,新しい意味に対しては `--no-dereference'を使用してください.

` -r'

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

` -R'
` --recursive'

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

` --remove-destination'

それぞれの既存のコピー先ファイルを,それを開く前に削除します(上記の `-f'とは異なります).

` --sparse=when'

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

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

` auto'

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

` always'

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

` never'

出力ファイルをまばらにしません.mkswapコマンドを用いてファイルを 作成するとき,そのようなファイルには穴があってはならないので,これが役に 立ちます.

` --strip-trailing-slashes'

それぞれのsource引数から,後置されるスラッシュを削除します. See section 末尾のスラッシュ.

` -s'
` --symbolic-link'

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

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

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

` --target-directory=directory'

コピー先のdirectoryを指定します.See section ターゲットディレクトリ.

` -v'
` --verbose'

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

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

`-b'で作成するバックアップの形式を変更します.method引数は, `none' (または`off'),`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 ブロックサイズ).

スキップとI/Oに対し,異なるブロックサイズを使用するために,異なる ddの呼び出しを使用してください.例えば,以下のシェルコマンドは ディスクとテープの間で,512 kBブロックでデータをコピーしますが,ディスク の最初の4 kBのラベルは,保存されたり復元されたりしません.

 
disk=/dev/rdsk/c0t1d0s2
tape=/dev/rmt/0

# Copy all but the label from disk to tape.
(dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape

# Copy from tape back to disk, but leave the disk label alone.
(dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk
` 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'サイズにし ます.`block'や`unblock'を使用するとき,ゼロバイトの代わりにス ペースで埋め込みます.


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[=method]'

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 ファイルのパーミッション).デフォルトモードは`u=rwx,go=rx'です-- 所有者の読み書き実行,グループとそれ以外は読み込みと実行です.

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

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

` -p'
` --preserve-timestamps'

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

` -s'
` --strip'

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

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

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

` --target-directory=directory'

コピー先のdirectoryを指定します.See section ターゲットディレクトリ.

` -v'
` --verbose'

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

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

`-b'で作成されるバックアップの形式を変更します.method引数は, `none' (または`off'),`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は,一つのファイルシステムから別のものへ,あらゆる形式のファイ ル移動が可能です.fileutilsのバージョン4.0以前では,mvは通 常のファイルのみファイルシステム間で移動が可能でした.例えば,現在の mvは,一つのパーティションから別のものへ,特殊なデバイスファイル を含むディレクトリ階層全体を移動可能です.それは最初に,要求されたディレ クトリとファイルをコピーするcp -aで使用されているものと同じコード を使用し,それから(コピーが成功したと仮定して)それは元を削除します.コピー が失敗した場合,コピー先のパーティションにコピーされた部分が削除されます. 一つのパーティションから3つのディレクトリを別のものにコピーし,最初のディ レクトリが成功し,2番目が失敗した場合,最初のものはコピー先のパーティショ ンにのこり,2番目と3番目は元のパーティションに残ります.

コピー先のファイルが存在し通常の書き込みが不可で,標準入力が端末で, `-f'や`--force'オプションが与えられていない場合,mvはファ イルを置換するかどうか,ユーザにプロンプトを表示します.(自分が所有する ファイル,または,そのディレクトリに書き込み許可がある必要があります.) 応答が`y'または`Y'で始まらない場合,ファイルはスキップされます.

警告:ディレクトリを示すシンボリックリンクを移動しようとし,スラッ シュを後置したシンボリックリンクを指定した場合,mvはシンボリック リンクを移動しませんが,その代わりにシンボリックリンクが参照するディレク トリを移動します.See section 末尾のスラッシュ.

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

` -b'
` --backup[=method]'

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

` -f'
` --force'

コピー先のファイルを削除したり上書きしたりする前に,ユーザにプロンプトを 表示しません.

` -i'
` --interactive'

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

` -u'
` --update'

同じまたは新しい編集時間を持つ既存のコピー先にディレクトリ以外のものを移 動しません.

` -v'
` --verbose'

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

` --strip-trailing-slashes'

それぞれのsource引数から後置されるスラッシュを削除します. See section 末尾のスラッシュ.

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

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

` --target-directory=directory'

コピー先のdirectoryを指定します.See section ターゲットディレクトリ.

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

`-b'で作成されるバックアップの形式を変更します.method引数は, `none' (または`off'),`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を用いてディレクトリの削除を試み,ア ンリンクを試みる前にディレクトリが空である必要はありません.適切な特権を 持ち,オペレーティングシステムがディレクトリに対する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の標準構文の開発以前のものです.


6.6 shred: より安全なファイルの削除

shredは,非常に高価なハードディスクでのデータの回復を妨げを助ける ため,デバイスやファイルを上書きします.

通常,ファイルを削除するとき(see section rm: ファイルやディレクトリの削除),データは実際には破 壊されません.ファイルが保存されている場所をリストアップしている索引のみ 破壊し,記憶装置は再利用可能になります.索引の再構築を試み,その部分が再 利用されていない場合,ファイルを元に戻すことが可能な,アンデリートユーティ リティがあります.

ほとんど満タンのドライブを使用している忙しいシステムでは,スペースは数秒 で再利用可能になります.しかし,それが確かであることを知る方法はありませ ん.機密データがあり,機密でないデータでファイルを実際に上書きすることで リカバリが不可能だということを確かめたいかもしれません.

しかし,そうした後でも,研究所へディスクを持っていき,上書きされたデータ の下の元データのかすかな"残響"を探すために感度の高い(そして高価な)多く の機器を使用することが可能です.データが一度上書きされただけでは,それは さほど難しくありません.

取り返しができないように何かを削除する最前の方法は,メディアに酸をかけて 破壊する,溶かしてしまう,またはそれに似たことをすることです.フロッピー ディスクのような,安い着脱可能なメディアに対しては,これは好ましい方法で す.しかし,ハードドライブは高価で,溶かすのが難しいため,shredユー ティリティは破壊することなく類似の効果を達成しようとします.

これは,古いデータに対するダメージを最大にするように選ばれたデータパター ンで,上書き動作を何回も使用します.これがフロッピーディスクで動作してい る間,パターンはハードドライブで最適な効果があるよう設計されています.詳 細は,ソースコードと,Sixth USENIX Security Symposium (San Jose, California, 22-25 July, 1996)の予稿から,Peter Gutmannの論文 Secure Deletion of Data from Magnetic and Solid-State Memoryを参 照してください.論文は http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.htmlで,オン ラインでも利用可能です.

shredは非常に重要な仮定に依存していることに注意してくださ い.それは,ファイルシステムがその場所のデータを上書きするということで す.これはそうするための伝統的な方法ですが,現代の多くのファイルシステム はこの仮定を満足するように設計されていません.例外は以下を含みます.

ファイルシステムがどのように動作しているかよく分からない場合,その場所に 上書きされないと仮定すべきで,それは,そのファイルシステムの通常のファイ ルで,shredが信頼できる動作を行うことができないことを意味します.

一般的にいって,これは,上記の意味で設計されたファイルシステムの問題をバ イパスするため,ファイルではなくデバイスにshredすることはより信頼 できます.しかし,デバイスをshredしてさえ,常に完全に信頼すること はできません.例えば,ほとんどのディスクは,不良セクタがアプリケーション に見えないようにをマッピングします.不良セクタが機密データを含む場合, shredはそれを破壊することは不可能です.

shredは,バックアップについて何もしないように,これらの問題の検出 も報告も試みません.しかし,ファイルではなくデバイスにshredする方 がより信頼できるので,shredはデフォルトで出力ファイルを切り詰めた り削除したりしません.このデフォルトはデバイスに対しより適していて,それ は通常切り詰めもできませんし,削除もすべきではありません.

 
shred [option]… file[…]

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

` -f'
` --force'

上書き可能が必要な場合,ファイルの許可に優先させます.

` -NUMBER'
` -n NUMBER'
` --iterations=NUMBER'

デフォルトで,shredは25回の上書きを使用します.これで,少なくとも 1回の使用で使用される有用な上書きパターンの全てに対して十分になります. 時間の節約のため減らしたり,時間の無駄遣いをする場合に増やすことが可能で す.

` -s BYTES'
` --size=BYTES'

ファイルの最初のBYTESバイトをshredします.デフォルトはファ イル全体をshredします.BYTESは乗数を指定するために, `k',`M',または`G'のようなサイズ指定を続けることができま す.See section ブロックサイズ.

` -u'
` --remove'

ファイルをshredした後,(可能な場合は)それを切り詰め,そして削除し ます.ファイルが複数のリンクを持つ場合,指名されたリンクのみ削除されます.

` -v'
` --verbose'

バイ菌の増殖のようにステータスの表示を更新します.

` -x'
` --exact'

通常,shredは,ファイルの最後のブロックまで完全に消去するため,ファ イルのサイズを,ファイルシステムのブロックサイズの次の乗数まで増加します. このオプションは,その動作を抑制します.このため,デフォルトでは,512バ イトのブロックを持つファイルシステム上の,10バイトのファイルを shredする場合,結果としてファイルは512バイトになります.このオプ ションを用いると,shredはファイルのサイズを増加させません.

` -z'
` --zero'

通常,shredの書き込みの最終動作は,ランダムデータの作成です.これ が(例えば,暗号化されたデータのように見えるため)ハードディスク上で目立つ 場合や,より整然としたいと考える場合,`--zero'オプションは全てをゼ ロビットを用いる上書き動作を追加します.これは,`--iterations'オプ ションで指定した動作の数に追加します.

` -'

標準出力をshredします.

この引数はオプションと見なされます.一般的な`--'オプションはコマン ドラインのオプションの終りを示すために使用されますが,`-'は普通のファ イルとして解釈されます.

この使用目的は,削除された一時ファイルをshredすることです. 例です.

 
i=`tempfile -m 0600`
exec 3<>"$i"
rm -- "$i"
echo "Hello, world" >&3
shred - >&3
exec 3>-

シェルコマンド`shred - >file'は,shredの呼び出しの前に,それ がfileを切り詰めるため,fileの内容を`shred'しないことに 注意してください.コマンド`shred file',または(Bourne互換シェルを使 用している場合は)コマンド`shred - 1<>file'を代わりに使用してくださ い.

最初のドライブのフロッピーディスクに作成されたファイルシステムの,全ての 記録を消去するために,以下のコマンドを使用するかもしれません.そのコマン ドは,1.44MBフロッピーを消去するために,約20分かかります.

 
shred --verbose /dev/fd0

同様に,ハードディスクの選択されたパーティションの全てのデータを消去する ために,以下のようなコマンドを与えることが可能です.

 
shred --verbose /dev/sda5

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

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