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?


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.