GNU/Linux >> Belajar Linux >  >> Linux

Single Dashes `-` Untuk Opsi Satu Karakter, Tapi Double Dashes `–` Untuk Words?

Dari mana asal konvensi penggunaan tanda hubung tunggal untuk huruf dan tanda pisah ganda untuk kata dan mengapa terus digunakan?

Misalnya jika saya mengetik ls --help , Anda melihat:

  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print octal escapes for nongraphic characters
      --block-size=SIZE      use SIZE-byte blocks
  -B, --ignore-backups       do not list implied entries ending with ~
...

Saya mencoba googling - and -- convention bahkan dengan kutipan dengan sedikit keberhasilan.

Jawaban yang Diterima:

Dalam The Art of Unix Programming Eric Steven Raymond menjelaskan bagaimana praktik ini berkembang:

Dalam tradisi Unix asli, opsi baris perintah adalah huruf tunggal yang didahului oleh tanda hubung tunggal… Gaya Unix asli berevolusi pada teletipe ASR-33 lambat yang menjadikan kesederhanaan sebagai kebajikan; dengan demikian opsi satu huruf. Menahan tombol shift membutuhkan upaya nyata; dengan demikian preferensi untuk huruf kecil, dan penggunaan "-" (daripada mungkin lebih logis "+") untuk mengaktifkan opsi.

Gaya GNU menggunakan kata kunci pilihan (bukan huruf kata kunci) didahului oleh dua tanda hubung. Ini berkembang bertahun-tahun kemudian ketika beberapa utilitas GNU yang agak rumit mulai kehabisan tombol opsi satu huruf (ini merupakan tambalan untuk gejala, bukan obat untuk penyakit yang mendasarinya ). Ini tetap populer karena opsi GNU lebih mudah dibaca daripada sup alfabet gaya lama.

[1] http://www.catb.org/esr/writings/taoup/html/ch10s05.html


Linux
  1. 6 opsi untuk tcpdump yang perlu Anda ketahui

  2. 5 opsi perintah man Linux teratas untuk menjelajahi halaman manual

  3. Linux – Referensi Tapi Untuk Linux?

  1. Buat perintah untuk Windows - opsi yang memungkinkan?

  2. fsck:Opsi untuk pemeriksaan disk paling menyeluruh

  3. xargs --replace/-I untuk argumen tunggal

  1. Linux – Batasi Penggunaan Memori Untuk Proses Linux Tunggal?

  2. Membungkus Perintah Yang Termasuk Kutipan Tunggal Dan Ganda Untuk Perintah Lain?

  3. Sudoers NOPASSWD untuk eksekusi tunggal tetapi mengizinkan yang lain