Câu trả lời:
Sau khi ls
chỉ cần nhập đường dẫn của thư mục bạn muốn liệt kê và bạn sẽ nhận được nó. Hãy tưởng tượng bạn đang ở trong thư mục nhà của bạn nhưng muốn liệt kê /etc
. Chỉ cần chạy ls /etc
và bạn sẽ nhận được nó được liệt kê.
ls
sẽ làm điều này
Cú pháp cho ls
là:
ls flags file-or-directory-names
Đối với những gì tôi đang gọi file-or-directory-names
, bạn có thể liệt kê các tệp trong thư mục hiện tại, để có một số tệp nhất định được liệt kê. Ví dụ: ls -l foo bar
sẽ liệt kê thông tin về chỉ foo
và bar
(ở dạng dài, như tôi đã đưa -l
cờ). ls baz*go
sẽ liệt kê tất cả các tệp có tên bắt đầu bằng baz
và kết thúc bằng go
(nếu có).
Nhưng khi bạn đặt tên thư mục cho ls
nó, nó sẽ liệt kê nội dung của thư mục đó thay vì thư mục hiện tại.
Vì vậy, để liệt kê nội dung /var/log
, bạn chỉ cần chạy:
ls /var/log
Nếu bạn đưa ra một đường dẫn tương đối cho thư mục - nghĩa là, một đường dẫn không bắt đầu bằng - /
thì nó sẽ tìm thư mục đó trong thư mục hiện tại (giống như nó tìm tệp). Nhưng nó vẫn sẽ liệt kê nội dung của thư mục, như bạn muốn.
Là một lưu ý phụ, đôi khi bạn có thể thấy bạn không muốn liệt kê nội dung của một thư mục, nhưng chỉ liệt kê thư mục giống như một tệp sẽ được liệt kê. Để làm điều này, bạn có thể vượt qua -d
cờ. Ví dụ: điều này hiển thị /var/log
ở dạng dài (không phải nội dung của nó , nhưng /var/log
chính nó):
ls -ld /var/log
ls baz*go
là một ví dụ về ls
việc nhận (có khả năng) nhiều đối số cho file-or-directory-names
(và theo cách này tương tự như ls foo bar
).
ls
không chịu trách nhiệm mở rộngbaz*go
cho tất cả các tệp bắt đầubaz
và kết thúc bằnggo
- đó là vỏ thực hiện việc này.