OSX コマンドライン引数を場所に依存しないものにする

OSX コマンドライン引数を場所に依存しないものにする

Linux でこのコマンドを実行すると、次のように動作します。

rm xxx -rf

しかし、OSX では、次のように引数を前に置く必要があります。

rm -rf xxx

これを修正する方法はありますか?

答え1

POSIX実際には、オプション引数を非オプション引数の前に置く必要があります。

概要

rm [-fiRr] file...

GNU/Linux は POSIX に準拠していませんが、OS X は準拠しています。POSIXLY_CORRECT を設定すると、GNU rm はオプション引数の前に非オプション引数を置くことを許可しません。

$ touch a;grm a -rf
$ touch a;POSIXLY_CORRECT= grm a -rf
grm: cannot remove ‘-rf’: No such file or directory

OS X の rm を GNU rm に置き換える場合は、実行してパス上の他のディレクトリの前にbrew install coreutils追加します。/usr/local/opt/coreutils/libexec/gnubin

関連情報