Чому в одних рекурсивний капітал прапора, а в інших нижчий?


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
Причина, ймовірно, буде історичною. У більш широкому світі Unix, який бере початок ще до 70-х, рекурсивні перемикачі були не завжди, а деякі команди вже використовували -r як комутатор. Оскільки команди часто використовуються в сценаріях, існує величезна інертність, пов’язана із зворотною сумісністю, тому в основному ці речі ніколи не змінюються - ви можете додавати параметри в програму, але горе буде розробнику, який намагається змінити давно встановлений функціонал.
Стефанія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.