-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이미 재귀 이외의 것을 의미하는 데 사용됩니다!
Darth Android

3

프로그래머가 원하는 플래그를 사용하도록 선택할 수있는 것 이외의 불일치에 특별한 이유가 있는지 확실하지 않습니다.

나는 그것에 대한 어떤 형태의 표준도 없다고 생각하므로 모든 사람들 이 소송을 따르기 를 기대하기는 어렵습니다 .


7
그 이유는 역사적 일 것입니다. 70 년대로 거슬러 올라가는 더 큰 유닉스 세계에서는 재귀 스위치가 항상 존재하지 않았으며 일부 명령은 이미 -r을 스위치로 사용했습니다. 명령은 종종 스크립트 내에서 사용되므로 이전 버전과의 호환성과 관련된 엄청난 관성이 있으므로 이러한 사항은 기본적으로 변경되지 않습니다. 프로그램에 옵션을 추가 할 수는 있지만 오랫동안 구축 된 기능을 변경하려는 개발자는 아닙니다.
Stephanie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.