membuat argumen baris perintah OSX independen

0

Ketika saya menjalankan perintah ini di linux, ia bekerja:

rm xxx -rf

tetapi di OSX, saya harus menempatkan argumen di depan, seperti:

rm -rf xxx

Apakah ada cara untuk memperbaikinya?

linjunhalida
sumber
3
Saya rasa tidak, kecuali Anda bersedia melakukan pemrograman atas nama orang-orang BSD. OS / X yaitu. Darwin datang dengan sebagian besar pengguna BSD dan hal-hal ini menguraikan argumen baris perintah dalam gaya yang sangat berbeda dari utilitas pengguna GNU yang digunakan di sebagian besar distribusi GNU / Linux. Fileutils GNU yang termasuk rm bisa dikompilasi ke Darwin. Bahkan mungkin ada Homebrew ( brew.sh ) rumus untuk itu.
Sami Laine
Itu berarti metode parsing dibangun menjadi biner yang dapat dieksekusi? maka tidak ada cara untuk menyelesaikannya, atau menulis alat commandline lain atau skrip shell untuk "menyusun ulang" argumen.
linjunhalida

Jawaban:

3

POSIX sebenarnya membutuhkan menempatkan argumen opsi sebelum argumen non-opsi:

RINGKASAN

rm [-fiRr] file...

GNU / Linux tidak sesuai dengan POSIX tetapi OS X tidak. Jika Anda mengatur POSIXLY_CORRECT, GNU rm tidak mengizinkan penempatan argumen non-opsi sebelum argumen opsi:

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

Jika Anda ingin mengganti OS X rm dengan GNU rm, jalankan brew install coreutils dan tambahkan /usr/local/opt/coreutils/libexec/gnubin sebelum direktori lain di jalan.

Lri
sumber