Mengapa ada alternatif pendek dan panjang untuk opsi baris perintah?

23

Sebagian besar perintah unixoid menampilkan alternatif pendek dan panjang untuk opsi baris perintah, seperti ls -adan ls --all, atau ls -Adan ls --almost-all. Mengapa kedua cara itu ada? Satu lebih pendek untuk diketik, yang lain lebih mudah dibaca dan dimengerti. Tetapi setiap kali saya menulis skrip shell, saya harus memutuskan mana yang ingin saya gunakan. Apakah diketahui mengapa ada dua alternatif? Yang mana yang pertama, mengapa yang lain diperkenalkan. Pada DOS / Windows misalnya, hampir hanya ada pilihan huruf satu yang tidak sensitif huruf.

ygoe
sumber

Jawaban:

24

Awalnya hanya ada opsi satu karakter. Beberapa program mengambil opsi beberapa karakter, tetapi masih dengan satu tanda hubung. Opsi multi-karakter dasbor ganda dasbor AFAIK berasal dari GNU ; mereka diperkenalkan karena lebih mudah dibaca dan seringkali lebih mudah diingat (dan Anda dapat memiliki lebih dari 52 di antaranya). Banyak program sekarang memiliki keduanya: opsi pendek ketika Anda mengetik di baris perintah dan mengingat karakter, opsi panjang untuk skrip atau pada baris perintah jika Anda hanya mengingat nama opsi yang lebih panjang.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
15
Memberi +1 untuk menyebutkan bahwa opsi panjang lebih baik untuk skrip, karena mereka membantu mendokumentasikan berbagai hal
Norman Gray
5
Adapun "hanya 52 dari mereka": Coba ls -BartSimpsonIsJustCool(atau Greatjika Anda menggunakan Solaris.
Aaron Digulla
1
@ AaronDigulla Apakah ini telur Paskah?
user712092
5
@ user712092 Tidak, ini tipuan. Di Linux, semuanya setelah Iargumen adalah -Iopsi, jadi hanya membuat perbedaan jika Anda memiliki file yang dipanggil sJustCooldi direktori saat ini. Bagian -BartSimpsondapat disusun ulang, kecuali bahwa S(urutkan berdasarkan ukuran) harus tetap setelah t(urutkan berdasarkan tanggal). Juga mtidak berpengaruh kapan natau oada. Jadi perintahnya setara dengan ls -BSainopsr, dan jika saya tidak melewatkan apa pun Anda tidak dapat menghapus surat lain untuk mencapai hasil yang sama dan Anda dapat menyusun ulang surat-surat ini dengan bebas.
Gilles 'SO- stop being evil'
2
@Gilles: omong-omong, agar seakurat mungkin, mungkin ada 62 opsi pendek (termasuk angka), bukan 52. Pertimbangkan gzip -9 filenamemisalnya.
Radko Dinev
1

Anda mungkin menebak bahwa ini masalah selera. Saat mengetik pada baris perintah opsi pendek mungkin lebih disukai, terutama dalam kasus run-together-options (misalnya ls -AL). Opsi panjang lebih baik dalam menyampaikan maksud, sehingga Anda tidak perlu membaca halaman manual ketika Anda membaca ls --almost-all --dereference.

Tentu, karena Anda mendapatkan pengalaman, Anda mungkin belajar bahwa kedua -Adan -Lpendek pilihan yang cukup terkenal, dan tidak memerlukan dokumentasi tambahan ini. Terutama dalam perintah kompleks yang dapat menggabungkan beberapa perintah dengan cara yang menarik dengan evaluasi, pengalihan, dll. Dalam kasus seperti itu Anda mungkin lebih memilih singkat daripada dokumentasi.

Chen Levy
sumber
1

Tujuan lain yang bisa saya lihat dalam memiliki berbagai cara menentukan parameter (pendek dan panjang) adalah ketika mengetik, orang-orang baris perintah Unix / Linux suka memiliki perintah sesingkat mungkin. Namun, itu bisa menjadi samar, dan jika skrip ditulis menggunakan versi pendek itu, mereka bisa menjadi sulit untuk dipahami. Menggunakan versi lama bisa membuat perintah SAMA lebih mudah dibaca dan dipahami oleh seseorang yang tidak pada guru dari perintah ini, terutama jika perintah ini sebenarnya adalah sebuah naskah yang ditulis secara lokal sebagai lawan perintah terkenal.

jfmessier
sumber