Komut satırı seçenekleri için neden kısa ve uzun alternatifler var?


23

Çoğu unixoid komutları gibi komut satırı seçenekleri için kısa ve uzun alternatifleri bulunmaktadır ls -ave ls --allya ls -Ave ls --almost-all. Bu iki yol neden var? Biri yazmak için kısa, diğerini okumak ve anlamak daha kolaydır. Fakat ne zaman bir kabuk betiği yazsam, hangisini kullanmak istediğime karar vermem gerekiyor. İki alternatifin neden var olduğu biliniyor mu? Hangisi önce, diğeri neden tanıtıldı. Örneğin DOS / Windows'ta neredeyse sadece büyük-küçük harf duyarlı tek harfli seçenekler var.

Yanıtlar:


24

Başlangıçta sadece tek karakterli seçenekler vardı. Bazı programlar birden fazla karakter seçeneğine sahipti, ancak yine de tek bir çizgi ile. AFAIK çift çizgi çoklu karakter seçenekleri geliyor GNU ; onlar daha okunaklı ve çoğunlukla daha akılda kalıcı oldukları için tanıtıldılar (ve bunlardan 52 tanesinden fazlasına sahip olabilirsiniz). Artık birçok programda her ikisi de var: komut satırına yazarken kısa seçenekler ve karakteri hatırla, komut dosyalarında uzun seçenekler veya yalnızca daha uzun seçenek adını hatırlıyorsan komut satırında.


15
Uzun seçeneklerin senaryolar için daha iyi olduğunu belirttiği için +1 çünkü işleri belgelemeye yardım ediyorlar
Norman Gray

5
"Sadece 52 tanesi" için: Deneyin ls -BartSimpsonIsJustCool(ya Greatda Solaris'teyseniz.
Aaron Digulla

1
@AaronDigulla Bu Paskalya yumurtası mı?
user712092

5
@ user712092 Hayır, bu bir hiledir. Linux altında I, argümandan sonraki her şey , -Iseçeneğin argümanıdır , bu nedenle yalnızca sJustCoolgeçerli dizinde bir dosya varsa, fark yaratır . -BartSimpsonParçası olması dışında yeniden sıralanmış olabilir S(bir çeşit boyutuna göre) sonra kalmak zorunda t(sıralama tarihe göre). Ayrıca veya mevcut molduğunda hiçbir etkisi yoktur . Yani komut eşdeğerdir ve eğer hiçbir şeyi kaçırmazsam aynı çıktıyı elde etmek için başka bir harfi kaldıramazsınız ve bu harfleri serbestçe yeniden sıralayabilirsiniz. nols -BSainopsr
Gilles 'SO- kötülük yapmayı bırak'

2
@Gilles: Bu arada, olabildiğince doğru olması gzip -9 filenameiçin , 52 değil, 62 farklı kısa seçenek (rakamlar dahil) olabilir .
Radko Dinev

1

Bunun bir zevk meselesi olduğunu tahmin edebilirsiniz. Komut satırına yazarken, özellikle birlikte çalıştırma seçenekleri durumunda (örneğin ls -AL) kısa bir seçenek tercih edilebilir . Uzun seçenekler niyet taşımada daha iyidir, bu nedenle okuduğunuzda man sayfasına başvurmanıza gerek yoktur ls --almost-all --dereference.

Doğal olarak, deneyim kazanmak, sen her iki öğrenmek olabilir -Ave -Lkısa seçenekler yeterince iyi bilinmektedir ve bu ekstra belgeleri gerekmez. Özellikle çeşitli komutları değerlendirme, yönlendirme vb. İle ilginç şekillerde birleştirebilecek karmaşık bir komutta. Böyle bir durumda dokümantasyon yerine kısalık tercih edebilirsiniz.


1

Parametreleri (kısa ve uzun) belirtmenin farklı yollarını görebildiğim bir diğer amaç ise, Unix / Linux komut satırının yazarken komutların mümkün olduğu kadar kısa olmasını istemesidir. Ancak, bunlar şifreli olabilir ve bu kısa sürümleri kullanarak bir komut dosyası yazılırsa, yolun aşılması zor olabilir. Uzun sürümünü kullanarak olmayan biri tarafından AYNI komut daha okunabilir ve anlaşılabilir yapabilir bu komut aslında iyi bilinen bir komuta aksine yerel olarak yazılmış bir senaryo, özellikle, bu komutun gurusu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.