FASTRM(1)

名前
fastrm - ファイル群の急速削除

形式
fastrm [ -d ] [ -e ] [ -u N ] [ -s M ] [ -c I ] base_directory

機能説明
fastrm は各行が一ファイル名となっているリストを標準入力から読み込み、各ファイルを削除します。 ファイルが絶対パス名でなければ、 コマンドの引数で指定したディレクトリからの相対パスとみなします。 base_directory パラメータは絶対パスでなければいけません。 — すなわち ``/./'' や ``/../'' による参照があってはいけません。

fastrm は通常の ``| xargs rm'' のようなパイプを使用するよりも速く処理するように設計されています。 例えば、 fastrm は通常、ファイルを削除する前にディレクトリに chdir(2) します。 これは、入力リストがソートされていれば、 削除されるファイルのほとんどが単純に名前だけ(パス名無し)になるということになります。

fastrm は入力リストが有効なものであり、削除するファイルそれぞれを単に unlink(2) することが安全であることを前提としています。 安全のために fastrm が root で実行されていれば、unlink する前にそれがディレクトリでないという ことを確認するために最初に入力データについて stat(2) を行います。

オプション

-d  ``-d'' オプションを使用すると、ファイルは削除しません。 ファイル群を削除する代わりに、 デバッグ形式で標準出力に削除しようとしたファイル群を出力します。 各行は fastrm がその時 unlink を実行するカレントのディレクトリと、``/'' と unlink(2) に渡すことになるパス名の三つがそれぞれホワイトスペースで区切られた出力か、 絶対パス名を使用して unlink しようとしたファイルの(ホワイトスペース無しの単一フィールドの)絶対パス名となります。

-e  ``-e'' オプションを使用すると、 fastrm は、空の入力ファイル(stdin)をエラーとして扱います。 これは先の sort(1) の結果のパイプの後に fastrm がある場合に、sort が失敗すれば、通常は fastrm の入力となる sort の出力がなくなるような場合に有用となります。

-u  ``-u'' オプションを使用すると、 fastrm はその処理環境については、 特にターゲットディレクトリにはシンボリックリンクは無いとした仮定を行います。 このオプションでは、 ``../../../'' は ``/'' から降りてくるよりもおそらく速いであろうことも想定しています。 (通常 ``..'' 以外のすべてを保持する namei キャッシュを持つシステムでは、 これはおそらく正しくないであろうことに留意してください。) オプションの N は整数で、パス名中での ``..'' の最大数を指定します — パス名中にこれより多く含まれている場合は代わりに(``/'' からの)絶対パス名を使用します。 値を指定せずに ``-u'' オプションを使用すると、``-u 1'' であるとみなします。

-s  ``-s'' を使用すると、 fastrm は削除するディレクトリで現れた順に — すなわちディレクトリ 内のファイル群は入力データでは連続して現れる場合 — ディレクトリから削除します。 このオプションの目的は、プロセス毎のディレクトリキャッシュを持つようなシステムでの、 ディレクトリ内でのファイルの発見を速めるということです。 それ以外のシステムでも若干メリットがあるかもしれません。 このオプションで指定する M はファイルを削除する場合にどれぐらいまでなら順番の並び変えを行わないかを指定する整数です。 値を指定せずに ``-s'' オプションを使用すると、``-s 5'' であるとみなします。 ディレクトリの読み込みでのファイルの順番の並び換えを使用する場合、 fastrm はディレクトリで見つけられなかったファイルは unlink しようとはしません。 これにより、多くのファイルがすでに削除されていれば、はるかに処理速度を早めることができます。

-c  ``-c'' オプションにより、 fastrm がどのような場合に chdir(2) すればいいのかを指定することができます。 ディレクトリから unlink するファイルの数が少なくとも I であれば、 fastrm は chdir し、そのディレクトリからファイルを削除します。 そうでなければ、カレントディレクトリからの相対パスを使用します。 整数 I 無しで ``-c'' を使用すると、``-c 1'' であるとみなし、 fastrm が常に chdir を使用するようにします。 ``-c'' が使用されていなければ、``-c3'' であるとみなします。 fastrm が chdir(2) を使用しないようにするには ``-c0'' を使用します。

-a -r
    ``-a'' と ``-r'' オプションを使用することにより、``fastrm -usa'' や ``fastrm -ussr'' や ``fastrm -user'' を使用することができるようになる以外は何もしません。 これは必要なオプションをまとめて使用する場合にしばしば起こります。

終了ステータス

fastrm は何も問題がなければ 0 で終了し、何か問題があれば、1 で終了します。 削除しようとしたファイルが存在していなくても問題とはみなしません。 0 以外のステータスで終了する場合に、``xargs rm'' へのパイプでファイルのリストを渡すのはおそらくよいアイデアでしょう。

履歴