なぜ-r再帰フラグキャピタルがいくつかあり、他では低いのですか?


8

コマンドの中にrは、再帰フラグに小文字を使用するものと、大文字を使用するものがありますR

cp -r foo/ bar/

chmod -R 777 foobar/

これには理由がありますか?

回答:


8

cp 実際に両方を受け入れます。

からcp --help

  -R, -r, --recursive          copy directories recursively

一貫性を保つために、ほとんどのシェルコマンド-R再帰フラグとして使用しますls。これは、おそらくの動作を模倣しているためです。

からls --help

  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively

1
また、chmod -rすでに再帰的以外の意味で使用されています!
ダースAndroid

3

プログラマが必要なフラグを使用することを選択できること以外に、不整合の特定の理由があるかどうかはわかりません。

そのための標準の形式はないと思うので、誰もが追随することを期待するのは難しいです。


7
その理由はおそらく歴史的なものでしょう。70年代までさかのぼるより大きなUnixの世界では、再帰的なスイッチが常に存在するわけではなく、一部のコマンドはすでに-rをスイッチとして使用していました。コマンドはスクリプト内で頻繁に使用されるため、下位互換性に関連する途方もない慣性があるため、これらは基本的に変更されません。プログラムにオプションを追加することはできますが、長く確立された機能を変更しようとする開発者は悲惨です。
ステファニー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.