cpの-rと-R、その違いはもう存在しないのか?

cp: -r or -R?

GNU coreutilsでは-rと-Rに違いはなく、1992年の最初のコミットでは-rがファイルを通常ファイルとしてコピーするフラグを立てていたが、2002年に統合された。OpenBSDやNetBSDでは-Rのみが推奨され、-rは異なる動作を残す。POSIXも一貫性から-Rを推奨している。

POSIX.1-2024では-rオプションはもはや規定されておらず、一部の実装に存在する可能性があるだけだ。-Rオプションは-rの同義語として追加され、再帰的なディレクトリ降下を行う他のすべてのオプションとの一貫性のために選ばれた。
  1. bariumbitmap

    このブログ記事は変だ。`-r` と `-R` の違いについてほのめかし続け、ソースコードへのリンクまで貼っているのに、実際にはその違いが何なのか一切書いていない。記事が言及しているのに、なぜかリンクを張っていない OpenBSD のマニュアルを引用しよう:

    > 歴史的なバージョンの cp ユーティリティには -r オプションがあった。この実装はそのオプションをサポートしているが、特殊ファイル、シンボリックリンク、FIFO を正しくコピーしないため、その使用は強く推奨されない。

    https://man.openbsd.org/cp

  2. spijdar

    > 24年前の coreutils を未だに使っている人なんていない™。

    Sprite 2.077 pc386

    Welcome to Sprite

    root@cherimoya [1] # cp --version

    GNU fileutils 3.9

    root@cherimoya [2] # cp --help | grep recurs

    -r 再帰的にコピー、ディレクトリ以外はファイルとして扱う

    -R, --recursive ディレクトリを再帰的にコピー

    root@cherimoya [3] #

    名誉ある「誰もいない」の称号をいただこう ;-)

  3. mkl

    -a

    デフォルトでタイムスタンプやリンクなどを保持したくない理由がわからない。

  4. xrd

    LLM がこうしたスイッチを間違って幻覚するかどうかを、私のように知る方法があればいいのにと思う。

    まさに LLM が間違えそうな類のものに感じる。正確に言えば、トレーニングセットは実行コンテキスト(FreeBSD か macOS か Linux か)を知るようには訓練されていないのだから、当然だよね?

  5. bsoqk

    「ditto」であって、「dito」ではない

この日のほかの記事

2026-10-03