Bất cứ khi nào cần xem nội dung của một thư mục trên dòng lệnh trong Linux hoặc bất kỳ hệ điều hành nào khác giống UNIX, ls là lệnh được sử dụng. Lệnh ls liệt kê nội dung của các thư mục được sắp xếp theo thứ tự bảng chữ cái.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22413%22%20height=%22108%22%3E%3C/svg%3E
Mặc dù đó là cách sử dụng cơ bản của công cụ, nhưng nó cung cấp rất nhiều tính năng (dưới dạng tùy chọn dòng lệnh) giúp bạn trong nhiều trường hợp. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách sử dụng một số tùy chọn dòng lệnh này thông qua các ví dụ dễ hiểu. Sử dụng lệnh cd để chuyển đến thư mục mà bạn muốn thực thi lệnh ls.
ls -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22413%22%20height=%22125%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22405%22%20height=%22106%22%3E%3C/svg%3E
Sau đây là một ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22289%22%3E%3C/svg%3E
Dưới đây là lệnh trên đang hoạt động:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22189%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, trong số các tệp có tên chứa phần mở rộng, 'echo.c' được liệt kê đầu tiên và 'byzanz_window.py' được liệt kê ở cuối.
Tùy chọn dòng lệnh -t hiển thị các mục mới nhất trước.
ls -R
Ảnh chụp màn hình sau đây cho thấy lệnh trên đang hoạt động:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22355%22%20height=%22237%22%3E%3C/svg%3E
ls -i
Đây là lệnh trên đang hoạt động:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22235%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, các số bên trái là số inode, trong khi các tên bên phải là tên tệp/thư mục tương ứng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22237%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, đầu ra được chia thành 8 cột. Sau đây là nội dung các cột này truyền tải:
ls -l --author
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22208%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, cột thứ năm mới được thêm vào là dành cho tác giả.
Lưu ý: trang web chính thức của GNUnói rằng, "Trong GNU/Hurd, tác giả tệp có thể khác với chủ sở hữu của chúng, nhưng trong các hệ điều hành khác thì hai đối tượng này là một."
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22370%22%20height=%22144%22%3E%3C/svg%3E
Tuy nhiên, lệnh ls cung cấp một tùy chọn - khi được sử dụng - sẽ in các ký tự thoát kiểu C cho các ký tự không in được. Tùy chọn được đề cập là -b.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22371%22%20height=%22145%22%3E%3C/svg%3E
Vì vậy, bạn có thể thấy trong ảnh chụp màn hình ở trên, tùy chọn -b dẫn đến ls in '\n' cho ký tự xuống dòng. Tương tự, khoảng trắng được biểu thị bằng '\[khoảng trắng]' trong chế độ này.
Lệnh ls có tùy chọn cho phép bạn chỉ định đơn vị mà bạn muốn hiển thị kích thước tệp. Tùy chọn được đề cập là --block-size. Ví dụ, nếu bạn muốn kích thước được hiển thị theo kilobyte, bạn có thể chạy lệnh sau:
ls -l --block-size=k [tên-tệp]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2262%22%3E%3C/svg%3E
Hãy nhớ rằng kích thước được tạo ra với tùy chọn dòng lệnh -l là kích thước tệp thực tế hoặc lượng dữ liệu mà tệp chứa. Ngược lại, nếu bạn muốn biết kích thước của tệp trên hệ thống tệp hoặc kích thước được phân bổ (có, có thể khác nhau), thì bạn sẽ phải sử dụng lệnh -s.
ls -s --block-size=k [tên-tệp]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2258%22%3E%3C/svg%3E
Để biết thêm thông tin về sự khác biệt giữa kích thước tệp do tùy chọn -l và tùy chọn -s tạo ra, hãy đi đến tại đây.
Ví dụ:
ls -s -h
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22261%22%3E%3C/svg%3E
Ví dụ, ảnh chụp màn hình sau đây hiển thị hai lệnh ls. Lệnh đầu tiên sẽ xuất ra tên của tệp sao lưu, nhưng lệnh thứ hai (sử dụng tùy chọn -B) thì không.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22407%22%20height=%2289%22%3E%3C/svg%3E
Đây là một ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22112%22%3E%3C/svg%3E
Quan sát thêm '/' với thư mục example và '*' với tệp thực thi test. Sau đây là danh sách đầy đủ các chỉ báo cùng với thông tin về ý nghĩa của chúng:
Ví dụ, sử dụng --format=commas khi bạn muốn đầu ra được phân tách bằng dấu phẩy:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2282%22%3E%3C/svg%3E
Tương tự, sử dụng --format=single-columnkhi bạn muốn đầu ra được hiển thị theo cột đơn:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22395%22%20height=%22273%22%3E%3C/svg%3E
ls --hide=*.txt
Ảnh chụp màn hình sau đây hiển thị đầu ra khi có và không có tùy chọn --hide.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22160%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22413%22%20height=%22108%22%3E%3C/svg%3E
Mặc dù đó là cách sử dụng cơ bản của công cụ, nhưng nó cung cấp rất nhiều tính năng (dưới dạng tùy chọn dòng lệnh) giúp bạn trong nhiều trường hợp. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách sử dụng một số tùy chọn dòng lệnh này thông qua các ví dụ dễ hiểu. Sử dụng lệnh cd để chuyển đến thư mục mà bạn muốn thực thi lệnh ls.
1. Cách liệt kê các tệp/thư mục ẩn
Theo mặc định, lệnh ls không hiển thị các tệp/thư mục ẩn. Tuy nhiên, bạn có thể buộc công cụ thực hiện việc đó bằng cách sử dụng tùy chọn dòng lệnh -a. Vì vậy, để liệt kê tất cả các tệp/thư mục (bao gồm cả các tệp ẩn - những tệp có tên bắt đầu bằng dấu chấm '.') trong thư mục hiện tại, hãy chạy lệnh sau:ls -a
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22413%22%20height=%22125%22%3E%3C/svg%3E
2. Cách bỏ qua các mục nhập thư mục hiện tại (.) và trước đó (..) trong đầu ra
Khi sử dụng tùy chọn dòng lệnh -a, các mục nhập cho thư mục hiện tại và trước đó (. và .. tương ứng) cũng hiển thị. Nếu bạn muốn ls không hiển thị những thứ này trong đầu ra, hãy sử dụng tùy chọn dòng lệnh -A thay thế.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22405%22%20height=%22106%22%3E%3C/svg%3E
3. Cách hiển thị tệp/thư mục theo thứ tự ngược lại
Theo mặc định, lệnh ls hiển thị các tệp theo thứ tự bảng chữ cái trong đầu ra. Nhưng nếu muốn, bạn cũng có thể làm cho công cụ hiển thị các tệp theo thứ tự ngược lại. Để thực hiện việc này, bạn sẽ phải sử dụng tùy chọn dòng lệnh -r của công cụ.
Mã:
ls -r
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22289%22%3E%3C/svg%3E
4. Cách sắp xếp đầu ra lệnh ls dựa trên phần mở rộng tệp
Để sắp xếp đầu ra lệnh ls theo thứ tự bảng chữ cái dựa trên phần mở rộng tệp, hãy sử dụng tùy chọn dòng lệnh -X.
Mã:
ls -X
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22189%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, trong số các tệp có tên chứa phần mở rộng, 'echo.c' được liệt kê đầu tiên và 'byzanz_window.py' được liệt kê ở cuối.
5. Cách sắp xếp tệp dựa trên thời gian sửa đổi
Nếu bạn muốn nhanh chóng biết tệp hoặc thư mục nào đã được sửa đổi gần đây, thì bạn có thể sử dụng tùy chọn -t của lệnh ls.
Mã:
ls -t
6. Cách liệt kê các thư mục con một cách đệ quy
Nếu muốn, bạn cũng có thể khiến lệnh ls hiển thị nội dung của các thư mục con. Bạn có thể thực hiện thao tác này bằng cách sử dụng tùy chọn dòng lệnh -R.ls -R
Ảnh chụp màn hình sau đây cho thấy lệnh trên đang hoạt động:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22355%22%20height=%22237%22%3E%3C/svg%3E
7. Cách liệt kê tên tệp cùng với số inode của chúng
Lệnh ls cũng cho phép bạn liệt kê tên tệp/thư mục cùng với số inode tương ứng của chúng. Công cụ cung cấp tùy chọn dòng lệnh -i để truy cập tính năng này.ls -i
Đây là lệnh trên đang hoạt động:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22235%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, các số bên trái là số inode, trong khi các tên bên phải là tên tệp/thư mục tương ứng.
8. Cách hiển thị thông tin chi tiết về tệp và thư mục
Lệnh ls cũng có thể in thông tin chi tiết về tệp và thư mục. Để bật định dạng đầu ra này (còn được gọi là định dạng danh sách dài), bạn cần sử dụng tùy chọn dòng lệnh -l.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22237%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, đầu ra được chia thành 8 cột. Sau đây là nội dung các cột này truyền tải:
- Cột đầu tiên hiển thị quyền đối với tệp
- Cột thứ hai hiển thị số lượng liên kết cứng
- Cột thứ ba và thứ tư là tên chủ sở hữu và nhóm
- Cột thứ năm là kích thước tệp
- Cột thứ sáu và thứ bảy là ngày và giờ sửa đổi lần cuối
- Cột cuối cùng là tên tệp.
9. Cách hiển thị thông tin tác giả
Bạn cũng có thể yêu cầu lệnh ls liệt kêtác giả của từng tệp khi tạo danh sách thư mục định dạng dài. Để thực hiện việc này, bạn phải kết hợp tùy chọn --author với -l.ls -l --author
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22208%22%3E%3C/svg%3E
Như bạn có thể thấy trong ảnh chụp màn hình ở trên, cột thứ năm mới được thêm vào là dành cho tác giả.
Lưu ý: trang web chính thức của GNUnói rằng, "Trong GNU/Hurd, tác giả tệp có thể khác với chủ sở hữu của chúng, nhưng trong các hệ điều hành khác thì hai đối tượng này là một."
10. Cách in ký tự thoát kiểu C cho các ký tự không phải ký tự đồ họa (như xuống dòng và khoảng trắng)
Giả sử thư mục hiện tại chứa một tệp có tên có ký tự xuống dòng. Nếu bạn thử liệt kê nội dung của thư mục đó, tên tệp cụ thể đó sẽ được hiển thị có dấu chấm hỏi (?), biểu thị một ký tự không in được.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22370%22%20height=%22144%22%3E%3C/svg%3E
Tuy nhiên, lệnh ls cung cấp một tùy chọn - khi được sử dụng - sẽ in các ký tự thoát kiểu C cho các ký tự không in được. Tùy chọn được đề cập là -b.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22371%22%20height=%22145%22%3E%3C/svg%3E
Vì vậy, bạn có thể thấy trong ảnh chụp màn hình ở trên, tùy chọn -b dẫn đến ls in '\n' cho ký tự xuống dòng. Tương tự, khoảng trắng được biểu thị bằng '\[khoảng trắng]' trong chế độ này.
11. Cách in kích thước tệp theo đơn vị khác ngoài byte
Nếu bạn muốn biết kích thước của tệp, bạn sẽ phải sử dụng tùy chọn -l (cho phép định dạng danh sách dài) mà chúng tôi đã thảo luận ở điểm 3 ở trên. Theo mặc định, kích thước được hiển thị theo byte. Tuy nhiên, có thể có những trường hợp bạn muốn kích thước theo kilobyte hoặc megabyte.Lệnh ls có tùy chọn cho phép bạn chỉ định đơn vị mà bạn muốn hiển thị kích thước tệp. Tùy chọn được đề cập là --block-size. Ví dụ, nếu bạn muốn kích thước được hiển thị theo kilobyte, bạn có thể chạy lệnh sau:
ls -l --block-size=k [tên-tệp]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2262%22%3E%3C/svg%3E
Hãy nhớ rằng kích thước được tạo ra với tùy chọn dòng lệnh -l là kích thước tệp thực tế hoặc lượng dữ liệu mà tệp chứa. Ngược lại, nếu bạn muốn biết kích thước của tệp trên hệ thống tệp hoặc kích thước được phân bổ (có, có thể khác nhau), thì bạn sẽ phải sử dụng lệnh -s.
ls -s --block-size=k [tên-tệp]
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2258%22%3E%3C/svg%3E
Để biết thêm thông tin về sự khác biệt giữa kích thước tệp do tùy chọn -l và tùy chọn -s tạo ra, hãy đi đến tại đây.
12. Cách làm cho lệnh ls chỉ hiển thị tên tệp và kích thước tệp trong đầu ra
Nếu bạn muốn đầu ra của lệnh ls chỉ chứa tên tệp/thư mục và kích thước tương ứng của chúng, thì bạn có thể thực hiện điều đó bằng cách sử dụng tùy chọn -h kết hợp với tùy chọn dòng lệnh -l/-s.Ví dụ:
ls -s -h
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22261%22%3E%3C/svg%3E
13. Cách làm cho ls không liệt kê các tệp sao lưu trong đầu ra
Trong Linux, các tệp sao lưu được biểu diễn bằng tên kết thúc bằng dấu ngã (~). Lệnh ls cung cấp tùy chọn (-B) mà bạn có thể yêu cầu công cụ không liệt kê các tệp sao lưu trong đầu ra, trong trường hợp đó là những gì cần thiết.Ví dụ, ảnh chụp màn hình sau đây hiển thị hai lệnh ls. Lệnh đầu tiên sẽ xuất ra tên của tệp sao lưu, nhưng lệnh thứ hai (sử dụng tùy chọn -B) thì không.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22407%22%20height=%2289%22%3E%3C/svg%3E
14. Cách làm cho lệnh ls chỉ rõ loại tệp trong đầu ra
Theo mặc định, đầu ra mà lệnh ls hiển thị được mã hóa màu, trong đó các màu khác nhau biểu thị các loại tệp khác nhau. Tuy nhiên, nếu muốn, bạn cũng có thể thêm công cụ này vào một chỉ báo (cho mục đích này) vào các mục nhập trong đầu ra. Có thể truy cập tính năng này bằng tùy chọn -F.Đây là một ví dụ:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22112%22%3E%3C/svg%3E
Quan sát thêm '/' với thư mục example và '*' với tệp thực thi test. Sau đây là danh sách đầy đủ các chỉ báo cùng với thông tin về ý nghĩa của chúng:
- @ biểu thị liên kết tượng trưng
- * biểu thị tệp thực thi
- = biểu thị tệp socket
- | biểu thị đường ống có tên
- > biểu thị cửa
- / biểu thị thư mục
15. Cách thay đổi định dạng đầu ra của lệnh ls
Nếu muốn, bạn cũng có thể thay đổi định dạng đầu ra cho lệnh ls. Tùy chọn --format của công cụ cho phép bạn thực hiện việc này. Tùy chọn này yêu cầu bạn phải truyền một giá trị cho biết loại định dạng đầu ra mà bạn muốn. Các giá trị có sẵn là: 'verbose' hoặc 'long', 'commas', 'horizontal' hoặc 'across', 'vertical' và 'single-column'.Ví dụ, sử dụng --format=commas khi bạn muốn đầu ra được phân tách bằng dấu phẩy:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%2282%22%3E%3C/svg%3E
Tương tự, sử dụng --format=single-columnkhi bạn muốn đầu ra được hiển thị theo cột đơn:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22395%22%20height=%22273%22%3E%3C/svg%3E
16. Cách làm cho ls ẩn một loại tệp cụ thể
Nếu muốn, bạn cũng có thể buộc lệnh ls ẩn một loại tệp cụ thể trong đầu ra. Tùy chọn --hide (yêu cầu phải truyền mẫu shell) cho phép bạn thực hiện việc này. Ví dụ, nếu bạn không muốn công cụ không hiển thị các tệp .txt trong đầu ra, đây là lệnh bạn nên chạy:ls --hide=*.txt
Ảnh chụp màn hình sau đây hiển thị đầu ra khi có và không có tùy chọn --hide.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22160%22%3E%3C/svg%3E