Tìm kiếm file nhanh chóng với lệnh tree: 5 ví dụ thực tế

Lệnh tree là một chương trình dòng lệnh nhỏ gọn, đa nền tảng được sử dụng để liệt kê hoặc hiển thị nội dung của một thư mục theo định dạng cây. Nó xuất ra các đường dẫn thư mục và tệp tin trong mỗi thư mục con và một tổng kết số lượng thư mục con và tệp tin.

Chương trình tree có sẵn trên các hệ thống Unix và giống Unix như Linux, cũng như DOS, Windows và nhiều hệ điều hành khác. Nó có nhiều tùy chọn cho việc xử lý đầu ra, từ tùy chọn về tệp tin, tùy chọn sắp xếp, đến tùy chọn đồ họa, và hỗ trợ đầu ra dưới các định dạng XML, JSON và HTML.

Trong bài viết ngắn này, chúng tôi sẽ hướng dẫn cách sử dụng lệnh tree với các ví dụ để liệt kê đệ quy nội dung của một thư mục trên hệ thống Linux.

Cách sử dụng lệnh tree với các ví dụ

Lệnh tree có sẵn trên tất cả các bản phân phối Linux, tuy nhiên, nếu bạn chưa cài đặt nó theo mặc định, hãy sử dụng trình quản lý gói mặc định của bạn để cài đặt nó như được hiển thị dưới đây.

Sau khi cài đặt, bạn có thể tiếp tục học cách sử dụng lệnh tree với các ví dụ như được hiển thị dưới đây.

1. Để liệt kê nội dung của thư mục theo định dạng cây, hãy điều hướng đến thư mục bạn muốn và chạy lệnh tree mà không có bất kỳ tùy chọn hoặc đối số nào như sau. Hãy nhớ gọi sudo để chạy cây trong một thư mục yêu cầu quyền truy cập người dùng root.

Nó sẽ hiển thị nội dung của thư mục làm việc theo đệ quy, hiển thị thư mục con và tệp tin và tổng kết số lượng thư mục con và tệp tin. Bạn có thể bật hiển thị các tệp tin ẩn bằng cờ -a.

List Directory Content in Tree Format

2. Để liệt kê nội dung của thư mục với tiền tố đường dẫn đầy đủ cho mỗi thư mục con và tệp tin, sử dụng tùy chọn -f như được hiển thị dưới đây.

List Directory Content with Location

3. Bạn cũng có thể chỉ cho cây in ra chỉ các thư mục con mà không bao gồm các tệp tin trong chúng bằng tùy chọn -d. Nếu sử dụng kết hợp với tùy chọn -f, cây sẽ in ra đầy đủ đường dẫn thư mục như được hiển thị dưới đây.

List Sub-Directory Paths

4. Bạn có thể chỉ định độ sâu hiển thị tối đa của cây thư mục bằng tùy chọn -L. Ví dụ, nếu bạn muốn độ sâu là 2, chạy lệnh sau đây.

Set Directory Listing Depth

Dưới đây là một ví dụ khác về đặt độ sâu hiển thị tối đa của cây thư mục là 3.

Set Maximum Directory Listing Depth

5. Để chỉ hiển thị các tệp tin phù hợp với mẫu ký tự đại diện, sử dụng cờ -P và chỉ định mẫu của bạn. Trong ví dụ này, lệnh chỉ liệt kê các tệp tin phù hợp với mẫu  cata*, vì vậy các tệp tin như  Catalina.shcatalina.bat, vv. sẽ được liệt kê.

List Files by Wild Card Pattern

6. Bạn cũng có thể yêu cầu cây xóa các thư mục rỗng khỏi đầu ra bằng cách thêm tùy chọn --prune như được hiển thị dưới đây.

7. Cũng có một số tùy chọn tệp tin hữu ích được hỗ trợ bởi cây như -p để hiển thị loại tệp và quyền truy cập của mỗi tệp theo cách tương tự như lệnh ls -l.

Print File Type and Permissions

8. Ngoài ra, để in ra tên người dùng (hoặc UID nếu không có tên người dùng có sẵn) của mỗi tệp, sử dụng tùy chọn -u, và tùy chọn -g in ra tên nhóm (hoặc GID nếu không có tên nhóm có sẵn). Bạn có thể kết hợp các tùy chọn -p, -u và -g để thực hiện việc liệt kê dài tương tự như lệnh ls -l.

Print File Type and Permissions with Owner

9. Bạn cũng có thể in ra kích thước của mỗi tệp theo byte cùng với tên bằng cách sử dụng tùy chọn -s. Để in ra kích thước của mỗi tệp bằng định dạng dễ đọc hơn, sử dụng cờ -h và chỉ định một ký tự kích thước cho kilobytes (K), megabytes (M), gigabytes (G), terabytes (T), vv..

Print File Size

10. Để hiển thị ngày và giờ của thời gian sửa đổi lần cuối cho mỗi thư mục con hoặc tệp tin, sử dụng tùy chọn -D như sau.

Show Date of Last Modification Time

11. Một tùy chọn hữu ích khác là --du, cho phép báo cáo kích thước của mỗi thư mục con là tổng kích thước của tất cả các tệp và thư mục con của nó (và các tệp con của chúng, và cứ như vậy).

12.Cuối cùng, bạn có thể gửi hoặc chuyển hướng đầu ra của cây đến tệp tin để phân tích sau này bằng cách sử dụng tùy chọn -o.

Đó là tất cả những gì cần biết về lệnh tree, chạy man tree để biết thêm thông tin về việc sử dụng và các tùy chọn. Nếu bạn có bất kỳ câu hỏi hoặc ý kiến nào, hãy sử dụng biểu mẫu phản hồi dưới đây để liên hệ với chúng tôi.