나의 새로운 Mac OS/Darwin 시스템에서 나의 find
도구는 11년 전의 BSD 버전입니다. MacPorts를 사용하여 최신 버전을 설치했습니다. find
MacPorts에서 이름을 로 지정 gfind
하고 에 배치한 GNU의 /opt/local/bin/
오래된 Apple 제공 장치 find
는 에 남아 있습니다 /usr/bin/find
.
find
시스템에서 계속 사용할 경우를 대비해 이전 버전을 유지해야 하지만, find
대신 명령줄에 입력하는 것을 선호합니다 gfind
.
나는 create in(내 경로 앞에 오는) 또는 create in 으로 실행할 수 있다는 것을 알고 있습니다 gfind
. 이 두 가지 모두 매우 잘 작동합니다. 내 질문은 입력할 때 어떻게 얻을 수 있느냐는 것입니다. 여러 버전의 in을 시도해 보았지만 그 중 아무 것도 작동하지 않았습니다.find
link
/opt/local/bin/
/usr/bin
alias
.zshrc
man gfind
man find
alias
.zshrc
어떻게 작동하게 합니까? 명령줄에 입력할 때 어떻게 man gfind
호출기 화면 으로 가나요?man find
답변1
원본 찾기 페이지가 필요하지 않은 경우 - 다음 find.1.gz
에서 링크를 만드세요.gfind.1.gz
더 나은 접근 방식은 MANPATH 환경 변수를 편집하고 그 안에 자신의 트리(man1, man2 등)를 넣고 매뉴얼 페이지를 바꾸는 것입니다.
답변2
모든 GNU를 변환하는 간단하고 일반적인 방법이 있습니다('g-접두사') MacPorts 설치 도구,그리고$PATH
관련 매뉴얼은 기본 도구 앞에 있습니다 .
➤ MacPorts 패키지 관리자는 심볼릭 링크가 포함된 디렉터리를 생성(및 업데이트)합니다.모두MacOS에 설치된 GNU 도구 및 매뉴얼."g-접두사"도구:
/opt/local/libexec/gnubin
매뉴얼을 포함하는 하위 디렉토리가 두 개(또는 그 이상) 있습니다. 이 디렉터리의 모든 파일은심볼릭 링크GNU 도구 및 매뉴얼. 예를 들어:
lrwxr-xr-x 1 root admin 20 Dec 26 17:21 find -> /opt/local/bin/gfind
# under gnubin/man/man1 :
lrwxr-xr-x 1 root admin 36 Dec 26 17:21 find.1.gz -> /opt/local/share/man/man1/gfind.1.gz
우리가 확인한다면 manpath
:
% manpath
/opt/local/share/man:/usr/local/share/man: /* etc. etc */
➤ 따라서 $PATH에 추가하면 명령을 입력하면 /opt/local/libexec/gnubin
실행되고 입력하면 보이는 것을 볼 수 있습니다. PATH는 기존 PATH 앞에 추가하여 수정할 수 있습니다.gfind
find
man gfind
man find
gnubin
export PATH="/opt/local/libexec/gnubin:$PATH"
만족스러우면 export
자신의 항목에 추가하면 됩니다 ~/.zprofile
. 더 이상 손가락을 재교육하여 gfind
타이핑 할 필요가 없습니다 find
.
➤ 당신도 할 수 있습니다재단사그것은 간단합니다:
많은 GNU 도구는 "컬렉션"으로 패키지되어 있습니다. 이는 다음 gfind
과 같은 여러 다른 도구와 함께 패키지되어 있음을 의미합니다.유틸리티 패키지 찾기- 포함하다 glocate
. 나는 거기에 있다는 것을 알기 전까지는 괜찮았습니다.완고한 실수Darwin과 Linux의 일부 차이점으로 인해 이는 효과적으로 비활성화됩니다(따라서 쓸모없게 만듭니다) gupdatedb
.glocate
저는 가끔 기본 버전을 사용하는데 locate
GNU 버전에 더 많은 시간을 낭비하지 않으려고 합니다. 이에 대한 "수정"은 에 대한 unlink
심볼릭 링크 glocate
와 gupdate
의 관련 설명서 입니다 /opt/local/libexec/gnubin
.
➤ 그런데 한 가지가 더 있어요얽힌정렬하면"재단사"그누빈:
나는 MacPorts가 주기적으로 작동한다는 것을 이해합니다.고쳐 쓰다 /opt/local/libexec/gnubin
, 관리자로부터 이러한 업데이트가"수리하다"내 수정 사항! 이렇게 하면 솔루션에 한 단계만 추가됩니다. gnubin
원본 폴더를 다른 위치에 복사하고 해당 대체 위치를 모두 편집한 unlink
다음 PATH에서 사용하세요. 수행 방법은 다음과 같습니다.
% sudo cp -RPp /opt/local/libexec/gnubin/ /opt/local/libexec/gnubin-m
이는국가의,BSD 버전cp
➤ 최종 솔루션 - gnubin-m을 편집/링크 해제하고 PATH에 추가
% sudo unlink /opt/local/libexec/gnubin-m/locate
% sudo unlink /opt/local/libexec/gnubin-m/man/man1/locate.1.gz
...
export PATH="/opt/local/libexec/gnubin-m:$PATH"