Apa perbedaan antara "-" dan "-" dalam perintah?

Jawaban:

15

Ini masalah konvensi. Program standar POSIX biasanya hanya memiliki opsi karakter tunggal, dan mereka semua diawali dengan tanda hubung tunggal. Versi yang lebih panjang adalah peningkatan GNU untuk kejelasan, sejauh yang saya tahu, dan biasanya diawali dengan tanda hubung ganda. Anda dapat melihat ini di perpustakaan dan program yang digunakan untuk mengurai opsi - getoptdan gnu-getoptmasing - masing. Program yang tidak sesuai dengan GNU dan non-POSIX dapat melakukan hal lain secara bersamaan. Perhatikan bahwa Anda benar-benar tidak dapat memastikan bahwa bentuk argumen yang panjang mungkin sama dari satu program ke program lainnya. -fbiasanya berarti --force, tetapi tidak dengan apt-get install(kesalahpahaman umum). -vdapat berarti versi - biasanya, atau --verbose, dan sebagainya. Periksa halaman manual atau dokumentasi lain untuk memastikan. Lihat juga diArtikel Wikipedia tentang getopt . Semua ini ada sebelum Linux satu dekade atau lebih.

ddadalah contoh utilitas standar POSIX yang tidak memiliki opsi ditulis dgn tanda penghubung sama sekali . findadalah contoh klasik dari utilitas standar POSIX yang memiliki opsi kata dengan tanda hubung tunggal - hampir semua findopsi memiliki banyak karakter. psmendukung beberapa gaya opsi:

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

GNUtar juga mendukung berbagai gaya opsi.

Sebagai masalah penggunaan, lebih suka opsi panjang dalam skrip jika Anda dapat memastikan bahwa skrip akan dijalankan di lingkungan yang kompatibel - peningkatan kejelasan adalah berkah saat debugging. Untuk portabilitas, opsi pendek lebih disukai.

muru
sumber
Jawaban yang sangat bagus. Terima kasih.
Peng Zhang
4

Biasanya - opsi dapat dirantai bersama, seperti pacman -Syusetara dengan pacman -S -y -u, dan - opsi umumnya mengambil parameter seperti pada./configure --prefix=/usr

Hanetzer
sumber