Đó là một vấn đề của quy ước. Các chương trình tiêu chuẩn POSIX thường chỉ có các tùy chọn ký tự đơn và tất cả chúng đều có tiền tố với một dấu gạch nối. Các phiên bản dài hơn là một cải tiến GNU cho rõ ràng, theo như tôi có thể nói, và thường được thêm tiền tố với các dấu gạch nối kép. Bạn có thể thấy điều này trong các thư viện và chương trình được sử dụng để phân tích các tùy chọn - getopt
và gnu-getopt
tương ứng. Các chương trình không tuân thủ GNU và không POSIX có thể làm một cái gì đó khác hoàn toàn. Lưu ý rằng bạn thực sự không thể chắc chắn rằng dạng đối số dài có thể giống nhau từ chương trình này sang chương trình khác. -f
thường có nghĩa --force
, nhưng không phải với apt-get install
(quan niệm sai lầm phổ biến). -v
có thể có nghĩa là phiên bản - thường, hoặc --verbose
, v.v. Kiểm tra các trang man hoặc tài liệu khác để chắc chắn. Cũng có một cái nhìn vàoWikipedia bài viết về getopt . Tất cả điều này có trước Linux từ một thập kỷ trở lên.
dd
là một ví dụ về tiện ích tiêu chuẩn POSIX không có bất kỳ tùy chọn gạch nối nào cả . find
là ví dụ kinh điển về tiện ích tiêu chuẩn POSIX có các tùy chọn từ với các dấu gạch nối đơn - gần như tất cả các find
tùy chọn đều dài nhiều ký tự. ps
hỗ trợ nhiều kiểu tùy chọn:
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
cũng hỗ trợ nhiều kiểu tùy chọn.
Về vấn đề sử dụng, hãy ưu tiên các tùy chọn dài trong tập lệnh nếu bạn có thể chắc chắn rằng tập lệnh sẽ được chạy trong môi trường tương thích - sự cải thiện rõ ràng là một điều may mắn khi gỡ lỗi. Đối với tính di động, các tùy chọn ngắn được ưa thích.