OS X에서 명령 행 도구를위한 유닉스 옵션 전체를 얻을 수 있습니까? 나는 따라 간다. 유닉스 도구 팁

나는 따라 간다. 유닉스 도구 팁 트위터에 올라 왔고 게시 된 팁 중 많은 부분이 OS X에서 사용할 수 없다는 점이 흥미 롭습니다.

예 :

cp – u는 대상 디렉토리에 존재하지 않는 파일이나 기존 파일보다 새로운 파일 만 복사합니다.

내 컴퓨터에서이 작업을 시도하면 다음과 같은 결과가 발생합니다.

cp: illegal option -- u
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
   cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory

왜 이러한 옵션을 사용할 수 없으며 OS X에서 해당 옵션에 액세스 할 수 있습니까?



답변

homebrew를 가져 와서 핵심 유틸리티를 설치하십시오. 그런 다음 cp의 GNU 버전이 원하는 플래그를 지원하는지 확인할 수 있습니다. 다음은 파트너 사이트에 대한 좋은 대답입니다. 원할 경우 cp를 GNU 버전으로 대체해야하는 정확한 단계를 발췌 해 보겠습니다.

여기에 자제가있다. http://mxcl.github.com/homebrew/
여기에 긴 이야기가 있습니다. https://superuser.com/questions/476575/replace-os-xs-shell-commands-with-the-linux-versions/476594#476594


그러한 환경의 예로는 [Homebrew] ( http://mxcl.github.com/homebrew/ ) 예를 들어 GNU sed 다른 것들 사이. Homebrew를 설치하면 다음과 같이 입력 할 수 있습니다.

brew install coreutils

설치하고 GNU Coreutils . 이것들은 sed, date, printf, wc GNU / Linux에는 제공되지만 OS X에는 제공되지 않는 많은 도구가 있습니다. 그러나 기본 OS X 바이너리를 “덮어 쓰지”않도록 접두사가 붙습니다 g 기본적으로. Coreutils를 설치 한 후 GNU sed를 사용하려면 다음을 입력하십시오.

gsed

이 때마다 매번 입력하는 번거 로움이 없다면 PATH에 “gnubin”디렉토리를 추가하고 GNU sed를 sed. 다음 항목을 귀하의 계정에 추가해야합니다. ~/.bash_profile:

PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"


답변

이유는 OSX가 BSD 명령 행 도구를 사용하고 유닉스 툴팁 사용자가 GNU 명령 행 도구를 사용하는 Linux를 사용하고 있기 때문입니다.

OSX (Linux의 경우 BSD)에 GNU 도구를 설치할 수 있습니다.

가장 쉬운 방법은 Macports, Homebrew 또는 Fink와 같은 패키지 관리자를 사용하는 것입니다.