
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