OS Xのコマンドラインツール用のUNIXオプションの完全なスイートを入手することは可能ですか?


14

TwitterのUnix Tool Tipをフォローしていますが、投稿されているヒントの多くが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 gawkapple.stackexchange.com/questions/69223/…を参照してください。
Lri

警告:cliツールのGNUバージョンをインストールして使用すると、GNUの拡張機能が得られますが、OS Xバージョンのツールの拡張機能も失われます。たとえば、homebrewのcoreutils(gcp混乱を避けるために命名)のcpコマンドは、OS Xファイルが持つことができる複雑なメタデータ(拡張属性など)をコピーする方法を知りません。そのためgcp、エイリアスファイルで使用すると、コピーに重要な情報が失われ、機能しなくなります。
ゴードンデイヴィソン

@GordonDavissonどうもありがとう。追加される.fileは私のすべてのディレクトリにありますか?私はそれがプラスかもしれないと思う:)
DQdlM

@KennyPeanuts:.DS_Storeファイルのことですか?それは似ていますが、私が話していることではありません(そして、gcp -R他のすべてと一緒にコピーします)。あなたが意味する場合._somefilename、それは... ...複雑さフォーリン・ボリュームのいくつかの種類にメタデータを格納する(私が話している情報)を使用AppleDoubleのファイル、だ
ゴードンDavisson

@GordonDavisson説明をありがとう。これは、私が話している._somefilenameファイルです。
DQdlM

回答:


12

homebrewを入手して、コアユーティリティをインストールします。その後、cpのGNUバージョンが希望するフラグをサポートしているかどうかを確認できます。パートナーサイトに関する適切な回答を以下に示します。必要に応じて、cpをGNUバージョンに置き換える必要がある正確な手順を抜粋します。

ここに自作-http ://mxcl.github.com/homebrew/
ここに長い話があります-/superuser/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をインストールします。これらはを提供しますseddateprintfwcおよび「オーバーライド」のデフォルトOS XのバイナリにGNU / Linuxでの船ではなく、OS X.しかしが、ように、彼らは接頭辞されていないことを他の多くのツールがgデフォルトで。したがって、Coreutilsをインストールした後、GNU sedを使用する場合は、次のように入力します。

gsed

毎回入力するのが面倒な場合は、PATHに「gnubin」ディレクトリを追加して、でGNU sedを呼び出すことができますsed。以下を以下に追加する必要があります~/.bash_profile

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


を使用してインストールしても大丈夫portですか?
アディルスームロ

1
@AdilSoomro macports.orgは評判の良い長年のツールです。私はそれを試さない理由はないと思います-私は経験がなく、自作に使用して貢献しています。
bmike

3

その理由は、OSXはBSDコマンドラインツールを使用し、UnixツールヒントユーザーはおそらくGNUコマンドラインツールを使用するLinuxを使用しているためです。

GNUツールはOSX(およびLinuxのBSD)にインストールできます。

最も簡単な方法は、Macports、Homebrew、Finkなどのパッケージマネージャーを使用することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.