OS X에서 명령 행 도구를위한 유닉스 옵션 전체를 얻을 수 있습니까?


13

나는 따라 간다. 유닉스 도구 팁 트위터에 올라 왔고 게시 된 팁 중 많은 부분이 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에서 해당 옵션에 액세스 할 수 있습니까?


find, sed 및 awk를 다음과 같이 설치할 수도 있습니다. brew install coreutils findutils gnu-sed gawk. 만나다 apple.stackexchange.com/questions/69223/... .
Lri

경고 : GNU 버전의 cli 도구를 설치하여 사용하면 GNU의 확장 기능을 사용할 수 있지만 OS X의 도구 버전에서 확장 기능을 잃을 수도 있습니다. 예를 들어, homebrew의 coreutils에있는 cp 명령 (named gcp 혼동을 피하기 위해) OS X 파일이 가질 수있는 복잡한 메타 데이터 (확장 attrs 등)를 복사하는 방법을 모른다. 그래서 당신이 사용한다면 gcp 별칭 파일에서 사본에 중요한 정보가 누락되어 작동하지 않습니다.
Gordon Davisson

@GordonDavisson이 머리를 가져 주셔서 감사합니다. .file 파일을 추가하면 모든 디렉토리가 이동합니까? 나는 그것이 플러스일지도 모른다라고 생각한다 :)
KennyPeanuts

@KennyPeanuts : .DS_Store 파일을 의미합니까? 그것은 비슷하지만 내가 말하는 것에 대해 (그리고 gcp -R 다른 모든 것들과 함께 그것을 복사 할 것입니다). 당신이 의미한다면 ._somefilename, 그것은 AppleDouble 파일을 메타 데이터 (제가 말하고있는 정보)를 외국 볼륨에 저장하는 데 사용됩니다 ... 이는 복잡합니다 ...
Gordon Davisson

@GordonDavisson의 설명에 감사드립니다. 그것들. 내가 말하는 일부 파일.
KennyPeanuts

답변:


11

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"


다음을 사용하여 설치해도 괜찮습니까? port?
Adil Soomro

1
@AdilSoomro macports.org 좋은 평판을 가진 오랜 도구입니다. 나는 그것을 시도하지 않을 아무 이유도 보지 않는다 - 나는 다만 경험이없고 사용하고 자작물에 공헌한다.
bmike

3

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.