重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。
cpコマンドでディレクトリをまるごとコピーする際の話なのですが、-H,-L,-Pオプションの違いについて悩んでいます。
man cpでは、
-H 処理は、source_file オペランドとして指定したシン ボ
リッ クリンクが参照するファイルの種類と内容に基づい
て行われます。

-L 処理は、source_file オペランドとして指定したシン ボ
リッ ク リ ンク、あるいは、ファイル階層の検索中に出
会ったシンボリックリンクが参照するファイルの種類 と
内容に基づいて行われます。

-P 処理は、source_file オペランドとして指定したシン ボ
リッ ク リ ンク、あるいは、ファイル階層の検索中に出
会ったシンボリックリンク自身に行われます。

と出ます。いったいなにが言いたいのかわかりません(^^;
実際試してみると、-H,-Pはシンボリックリンクファイルはそのままシンボリックリンクファイルとしてコピーされ、-Lはシンボリックリンクファイルが普通のファイルになってコピーされます。-Hと-Pは実際どのように違うのでしょうか?また、-Lについても、manでの意味がわかりません。

どなたか、それぞれの動作の違いと、manでの意味について解説願えないでしょうか?参考になるページでも構いません。よろしくお願いします。

Solarisのバージョンですが、manの最後には
SunOS 5.10
と表示されています。

A 回答 (1件)

ちとオンラインのマニュアルを読んでみたけど, 確かに日本語ではそれだけしか書かれてないですね.


実は英語のマニュアルでは次の段落に「どういう動作なのか」がもうちょっと詳しく書いてあります. たぶん, source_file オペランド自身がシンボリックリンクのときに -H と -P の違いが出るのではないか, と. -L についても, 英語ではちゃんと「シンボリックリンクは保存されない (リンク先のファイルがコピーされる)」って書いてあるんだよね.
かつてあった誤訳に比べればましだけど「日本語訳はあてにするな」ってことで.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!