私の新しい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
マニュアルを含むサブディレクトリが2つ(またはそれ以上)あります。このディレクトリのすべてのファイルはシンボリックリンク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
、管理者からのこれらの更新「修理する」私の修正!これにより、ソリューションに1つのステップしか追加されません。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"