Tôi có nên sắp xếp theo thứ tự các cờ trong một lệnh như là một thực hành tốt?


14

Tôi biết rằng hai lệnh này làm cùng một điều:

ls -la
ls -al

nhưng tôi tự hỏi nếu có bất kỳ ưu tiên giữa họ. Có phải thực hành tốt hơn để đặt hàng chúng theo một cách nhất định?


11
Bạn cũng cần áo phông này: redbubble.com/people/digerati/works/, :)
Sergey

@Sergey Áo tuyệt vời!
Terrance

Câu trả lời:


15

Nó không thực sự quan trọng * trừ khi một lệnh rõ ràng đề cập. Tôi đã đi qua không có tài liệu tham khảo nào đưa ra bất cứ điều gì như một hướng dẫn làm thế nào để đặt các tùy chọn lần lượt. Vì vậy, tôi nghĩ rằng để dễ đọc, các tùy chọn có thể được sắp xếp theo thứ tự abc.

* Có một cavaet rất quan trọng đó là nếu bất kỳ tùy chọn nào cần tên tệp hoặc bất kỳ đầu vào nào khác ngay sau khi bạn cần đặt nó cho phù hợp.

Ví dụ: -ftùy chọn greplấy một tệp làm đầu vào để lấy mẫu cần tìm từ tệp đầu vào. Bạn cần đưa ra lệnh như vd:

grep -cf input.txt file.txt 

Nếu bạn sử dụng nó như:

grep -fc input.txt file.txt 

nó sẽ thất bại vì nó sẽ sử dụng cnhư một tên tập tin.


12

Các quy ước POSIX được định nghĩa trong Hướng dẫn 11 và 12 của Nguyên tắc Cú pháp Tiện ích rằng thứ tự " không quan trọng " trừ khi nó không được ghi lại cho chính tiện ích đó.

Các GNU C Library Reference Manual cũng tôn vinh những ước POSIX trong Chương trình 25.1.1 Đối số Cú pháp ước .

Nhưng lưu ý, có một số tiện ích đưa ra trong một số tình huống yêu cầu nghiêm ngặt cách thực hiện các tham số (ví dụ: find). Từ trang tìm kiếm :

Các -namethử nghiệm đứng trước -typethử nghiệm để tránh phải gọi điện stat(2)trên tất cả các tập tin.

Đôi khi các tiện ích phàn nàn về việc đặt hàng.


3
Nói đúng ra, findchỉ có một vài lựa chọn, POSIX chỉ xác định hai tùy chọn -H-L. GNU findtrong Ubuntu có thêm một vài tùy chọn, nhưng -type-namevv được coi là toán tử , không phải tùy chọn . Và đối với các nhà khai thác, đặt hàng thường là vấn đề.
geirha

5

Với ls bạn khó có thể đi sai với việc đặt hàng các tùy chọn.

Nhưng hãy chú ý rằng các lệnh khác có thể có các phản hồi khác nhau đối với các tùy chọn tùy theo thứ tự.

Một ví dụ là lệnh find. Bạn sẽ nhận được kết quả khác nhau, ví dụ giữa:

  find . -ls -mtime -1 

  find . -mtime -1 -ls

3

Nếu những gì bạn muốn thực hành là bảng chữ cái chuỗi ngắn, có lẽ. Tôi tìm thấy hai chiến lược hữu ích: tạo từ (giảm lỗi chính tả) và đặt câu (cải thiện sự hiểu biết).

Ví dụ, đối với ls, tôi thường sử dụng ls -halFbởi vì, ngay cả với cách viết hoa lạ, tôi vẫn giỏi gõ halF hơn là một từ như Falh không phải là một từ.

Mặt khác, đối với tar, tôi gõ tar czvf filenamevà nói (trong đầu tôi) "tar Tạo và Zip, có thể xác thực cho tên tệp" bởi vì đó là cách tôi học được các chữ cái khác nhau có nghĩa gì.


Tôi nhớ e2fsck -fvcckt vì nó đánh vần tình huống tôi có thể gặp phải nếu nó trả về quá nhiều lỗi. ;)
Joe

2

Giống như những người khác đã trả lời, điều đó không thành vấn đề (trừ khi có tài liệu khác hoặc các đối số tùy chọn có thêm đối số).

Nhưng nó là tốt hơn để đặt hàng tùy chọn theo thứ tự abc là tranh cãi.

Cá nhân, tôi thấy rằng việc ghi nhớ cung cấp nhiều giá trị hơn so với thứ tự chữ cái nghiêm ngặt. Sẽ dễ nhớ hơn một tập hợp các tùy chọn khi chúng tạo thành một từ dễ nhớ, ví dụ, xem xét:

netstat -tan
# alphabetic is good (by chance) in this case
netstat -ant

vs

netstat -atn
netstat -nta

Vì vậy, nếu bạn thấy mình lặp lại một số tùy chọn nhất định cho một lệnh, bạn có thể muốn thử và sắp xếp lại các chữ cái theo thứ tự dễ nhớ nhất cho bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.