長南洋一
cyoic****@maple*****
2010年 12月 9日 (木) 18:56:16 JST
長南です。 質問を続けます。 ・ -O オプションの最後の部分 The findutils test suite runs all the tests on find at each optimisation level and ensures that the result is the same. なお、findutils のソースに付属する一連のテストプログラムは、 findに対して各最適化レベルですべてのテスト式を実行して、 結果が必ず同じになるようにしている。 かなりインチキな訳です。ensure がうまく訳せないということも あるのですが (ensure に「確認する」という意味がないようなので)、 テストプログラムが実際に何をやっているかがわからないせいでも あります。テストプログラム (the findutils test suite) というのは、 findutils のソースの findutils-4.4.2/tests に含まれるプログラム 群のことだと思います。 なお、findutils では、ソースに付属するテストプログラムを 使用し、find に対して各最適化レベルですべてのテスト式を 実行して、結果が必ず同じになるようにしている。(あるいは、 「結果が同じになることを確保している」) というのも考えました。 # なお、この部分が「テスト式」と「式」を付けた理由の一つでも # あります。やっぱり「判別式」を使うべきなのかもしれません。 # もうちょっとぴったりの訳語がないかなと思うのですが。 ・ -mindepth levels Do not apply any tests or actions at levels less than levels (a non-negative integer). -mindepth 1 means process all files except the command line arguments. コマンドライン引数として指定したパスからディレクトリを 降りること levels 未満のディレクトリは、テスト式やアクション式の 対象にしない (levels は非負の整数)。-mindepth 1 を指定すると、 コマンドラインの引数を除くすべてファイルを処理する。 ぎくしゃくした表現なので、こんなふうにしようかと思っています。 それでもまだ、わかりにくいかもしれませんが。 コマンドライン引き数として指定したパスから少なくとも levels 段階 ディレクトリを下降するまで、どんなテストやアクションも行わない (levels は非負の整数)。 ・ -executable Matches files which are executable and directories which are searchable (in a file name resolution sense). This takes into account access control lists and other permissions artefacts which the -perm test ignores. 実行可能なファイルや (ファイル名解決の際に) 検索可能なディレ クトリにマッチする。テスト式 -perm が ACL (アクセス・コント ロール・リスト) などのパーミッション制御の仕組みを無視するのに 対して、このテスト式は ACL なども考慮に入れる。 「(ファイル名解決の際に)」で通じますか。 ACL 云々の文も内容的に正しいか、自信がありません。 ・ -fstype type ... The valid filesystem types vary among different versions of Unix; an incomplete list of filesystem types that are accepted on some version of Unix or another is: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. ... 使用できるファイルシステムは、Unix の系統によって様々である。 Unix の系統次第では指定可能なファイルシステムを不完全ながら 挙げると、ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K などがある。 これも内容的に正しいでしょうか。 ・ -execdir command ; と -execdir command {} + ... This a much more secure method for invoking commands, as it avoids race conditions during resolution of the paths to the matched files. ... これはコマンドを呼び出す方法としてずっと安全である。 マッチしたファイルのパスを解決する際に起きる競合状態を 避けられるからだ。 よくわからないまま訳しています。「競合状態」でよいでしょうか。 なお、This a much more secure と is が抜けているのは、原文の ままです。 ・ -ok command と -okdir command If the command is run, its standard input is redirected from /dev/null. コマンドを実行する際、そのコマンドの標準入力は、/dev/null に 付け換えられる。 「is redirected from /dev/null」というのは、こういうことですか。 つまり、標準入力が無効になる? ・ -printf format の書式指定子 %S %S File's sparseness. This is calculated as (BLOCK‐SIZE*st_blocks / st_size). The exact value you will get for an ordinary file of a certain length is system-dependent. However, normally sparse files will have values less than 1.0, and files which use indirect blocks may have a value which is greater than 1.0. The value used for BLOCKSIZE is system-dependent, but is usually 512 bytes. If the file size is zero, the value printed is undefined. On systems which lack support for st_blocks, a file's sparseness is assumed to be 1.0. %S ファイルの穴空き率 (sparseness)。この値は 、(BLOCK‐ SIZE*st_blocks / st_size) で計算される。ある程度の大きさ の通常ファイルから得られる値は、厳密に言うと、システム 依存である。それでも、穴空きファイルの穴空き率は、 普通 1.0 未満になるし、間接ブロックを使用しているファイルの 穴空き率は、1.0 以上になることがある。 BLOCKSIZE に使われる 値は、システム次第だが、普通は 512 バイトである。ファイル サイズが 0 の場合、出力される値は不定である。st_blocks を サポートしていないシステムでは、ファイルの穴空き率は、1.0 と見なされる。 訳文は内容的に見てどうでしょう。「穴空きファイル」とか「間接 ブロック」とか、一応調べて見ましたが、よくわかっていません。 「間接ブロック」というのは inode の「間接参照」のことでしょうか。 それから、「穴空き率」という言葉は適当かどうか。また、 著者はディレクトリやリンクに対する通常ファイルを regular file と ほかのところで言っていますから、ordinary file は穴空きファイル などではない普通のファイルのことかもしれません。だとしたら、 「ある一定の大きさの普通のファイルから得られる値は、厳密に 言うとシステム依存である」でしょうか。「厳密に言うと」も、 続き方がおかしいかもしれません。「普通のファイルから得られる 正確な値は」でもよいのですが、ちょっと主語が長すぎる気がしますし。 ・ -quit Exit immediately. No child processes will be left running, but no more paths specified on the command line will be processed. For example, find /tmp/foo /tmp/bar -print -quit will print only /tmp/foo. Any command lines which have been built up with -execdir ... {} + will be invoked before find exits. 直ちに終了する。動いている子プロセスを残したまま終了したりは しないが、コマンドラインで指定したパスをこれ以上処理すること はない。たとえば、find /tmp/foo /tmp/bar -print -quit は、 /tmp/foo を表示するだけである。-execdir ... {} + によって すでに作成されたコマンドラインがあれば、find が終了する前に、 呼び出して実行する。 「No child prosesses ...」は、こんな解釈でよいのでしょうか。 ・ 「環境変数」の LANG LANG Provides a default value for the internationalization variables that are unset or null. LANG 国際化関係の環境変数のうち、値が設定されていなかったり、 null だったりする変数に対して、LANG の値がデフォルトの 値になる。 「internationalization variables」は「国際化関係の環境変数」で よいでしょうか。訳文は内容的にはどうでしょう。 ・ 「用例」 「find . -name .snapshot -prune -o \( \! -name *~ -print0 \)」 にこういう部分があります。 However, the -prune action itself returns true, so the following -o ensures that the right hand side is evaluated only for those directories which didn't get pruned (the contents of the pruned directories are not even visited, so their contents are irrelevant). このカッコの中にある their contents are irrelevant がうまく 訳せません。誤読しているのかもしれません。一応こんなふうに しましたが。 (探索の対象から取り除かれたディレクトリの中身は処理の対象 にすらならないので、そうしたものはもう関係がない) ・ 同じく「用例」の最後の例 Given the following directory of projects and their associated SCM administrative directories, perform an efficient search for the projects' roots: 以下のようなプロジェクトのディレクトリとそれに関連する SCM (訳注: ソースコード管理システム) の管理用ディレクトリが ある場合に、プロジェクトのルートを効率的に検索する。 「プロジェクトのルート」という言い方は熟した用語ですか。 ・ ついでに。 man -l find.draft で訳文を表示させると、「履歴」の表で -okdir と -samefile の間に空行が入ってしまいます (印刷した 場合は問題ありません)。どうしてなんでしょうか。 訳文に手を入れているうちに質問がまだ出てきそうですが、取り合えず このぐらい。 -- 長南洋一