シェルでtmp/ dirを修復したいと思います。shell:linuxのようなコマンドスタイルの `rm tmp/-fr`をMacで使うことができます
Linuxでは(ubuntuのように)、私はrm tmp/ -fr
またはrm -fr tmp/
です。しかし、Macでは、私はrm -fr tmp/
しかできません。
Macシェル(bash/zsh/...)を設定する方法はないので、linuxのようなコマンドスタイルを使うことができます:rm tmp/ -fr
?
シェルでtmp/ dirを修復したいと思います。shell:linuxのようなコマンドスタイルの `rm tmp/-fr`をMacで使うことができます
Linuxでは(ubuntuのように)、私はrm tmp/ -fr
またはrm -fr tmp/
です。しかし、Macでは、私はrm -fr tmp/
しかできません。
Macシェル(bash/zsh/...)を設定する方法はないので、linuxのようなコマンドスタイルを使うことができます:rm tmp/ -fr
?
非標準であるrm tmp/ -fr
のようにオペランドの後にオプションを持ちます。 IEEE規格1003.1-2001はセクション12.2 Utility Syntax Guidelinesにしています
Guideline 9: All options should precede operands on the command line.
GNUユーティリティ(ほとんどのLinuxディストリビューションで使用されるような)の実装は、多くの非標準の拡張機能を追加することを選択しました。便利なこともあるが、これらの抽出を使用することは本質的に不可能である。 MacOS Xには、BSDから派生したユーザランドがあります.BSDは、非標準のGNU拡張の大部分を持っていません。将来、BSD、Solaris、その他の商用UNIXなどの非GNUシステムで作業することを期待している場合は、ユーティリティの標準構文に固執し、GNU拡張に慣れないでください。これは、そこにあるすべての異なるUNIXオペレーティングシステムで作業するときに多くの面倒を節約します。これは、スクリプトを書くときに特に真実で重要です。スクリプトのGNU構文に依存すると、それらは移植不可能になります。
代わりのMacOS X上でのGNU coreutilsのをインストールするので、私のアドバイスは、標準の構文(IEEE STD 1003.1、POSIX.2など)に慣れるための機会としてそれを使用することです。
+1:あなたの最終提案には他には何もありません。 –
すばらしい説明:) – smilingpoplar
は、それは一般的な、それはあなたが実行するコマンドの実装に依存するであろう。しかし、rm
(あなたはrmを意味します)を例として使用しているため、できません。少なくともあなたが思うことはしません。
rm -fr tmp/
:オプション-r
と-f
ので、再帰的(ここでは必須)と強制してディレクトリtmp/
を削除します。rm tmp/ -fr
:ディレクトリtmp/
および/または-fr
という名前のファイル/ディレクトリ を削除する(しようと)しますが、エラーを生成します:。注:-rf
という名前のファイルを削除する唯一の他の方法はrm -- -rf
を使用することです。
にそれを明確に? – smilingpoplar
おそらく、おそらくそうではありません。私はBSDライクなOSやLinux OSを利用できません。しかし、それぞれのマニュアルページだけが見つかりましたが、それは可能ではないことを示唆しています。 YMMV。 –
あなたは他にどのような「UNIX」ということであることを意味します。 UNIXはブランドであり、オペレーティングシステムではありません(Solaris、AIX、HP/UXなど)。 –
私はそう、それはBSDによって制限されています(その他のubuntu、赤い帽子、)「Linuxの – smilingpoplar