Lệnh tree hoàn hảo để xem nhanh toàn bộ cấu trúc thư mục. Nó hiển thị các thư mục và file theo bố cục dạng cây rõ ràng ngay trong terminal. Bạn có thể kiểm soát độ sâu của lệnh, bao gồm các file ẩn và thậm chí lưu kết quả vào một file. Bài viết này sẽ đi sâu vào cách tận dụng tối đa lệnh tree.
Lưu ý: Đừng nhầm lẫn lệnh tree với lệnh pstree. Lệnh tree xử lý thư mục file, trong khi pstree xử lý danh sách các tiến trình đang chạy.
Cài đặt và cú pháp cơ bản
Tree không được cài đặt mặc định trên mọi bản phân phối Linux, nhưng nó rất nhỏ gọn và dễ dàng thêm vào. Bạn chỉ cần sử dụng trình quản lý gói của bản phân phối. Ví dụ, trên Debian/Ubuntu, hãy sử dụng lệnh sau:
sudo apt install tree
Đối với những người dùng Fedora, CentOS hoặc RHEL, bạn nên sử dụng lệnh sau:
sudo dnf install treeNgười dùng Arch Linux có thể sử dụng lệnh sau:
sudo pacman -S treeSau khi cài đặt, cách sử dụng đơn giản nhất là:
tree
Lệnh này sẽ in cây thư mục hiện tại, hiển thị các file và thư mục với những đường kết nối và tóm tắt cuối cùng, chẳng hạn như số lượng thư mục và file. Theo mặc định, lệnh này liệt kê mọi thứ theo cách đệ quy, hiển thị các file và thư mục trong chế độ xem phân cấp.
Kiểm soát độ sâu thư mục
Đôi khi bạn không muốn việc truy cập vô hạn hoàn toàn vào các thư mục con. Có thể bạn chỉ quan tâm đến hai cấp trên cùng, hoặc bạn chỉ cần một cái nhìn tổng quan rõ ràng thay vì quá sâu. Để có được một cấp cụ thể, bạn có thể sử dụng flag -L (level) của lệnh tree. Ví dụ, để chỉ hiển thị hai cấp, bạn có thể sử dụng lệnh sau:
tree -L 2
Bạn cũng có thể kết hợp nó với các flag khác để có hiệu quả hơn. Ví dụ, bạn có thể kết hợp tùy chọn -L với -d để chỉ hiển thị những thư mục và bỏ qua các file, nhưng tối đa đến cấp độ thứ ba:
tree -d -L 3Không giới hạn, tùy chọn này có thể mở rộng vô hạn, phù hợp với các thiết lập nhỏ nhưng lại quá tải đối với những thư mục lớn.
Bao gồm file và thư mục ẩn
Trong thế giới Linux, bất kỳ file hoặc thư mục nào bắt đầu bằng dấu chấm (.) đều được coi là ẩn. Những file hoặc thư mục này thường không được sử dụng hàng ngày. Chúng thường là các file cấu hình hoặc thư mục siêu dữ liệu, chẳng hạn như ".bashrc", ".profile" hoặc thư mục ".git" phổ biến trong kho lưu trữ Git. Lệnh tree theo mặc định sẽ ẩn hoặc bỏ qua các file và thư mục ẩn này.
Tuy nhiên, bạn có thể bao gồm chúng bằng flag -a:
tree -aGiờ đây, bạn sẽ có được mọi thư mục, bao gồm tất cả các file cấu hình ẩn quan trọng. Nếu bạn muốn có file ẩn cùng với kiểm soát độ sâu, hãy sử dụng lệnh này:
tree -a -L 2
Hiển thị file theo mẫu so khớp
Đôi khi bạn không muốn xem tất cả mọi thứ; mà đang tìm kiếm một thứ cụ thể. Có thể bạn chỉ quan tâm đến các file Python, hoặc đang tìm kiếm tất cả mọi tài liệu Markdown của mình. Tùy chọn -P cho phép bạn chỉ định một mẫu để so khớp.
Ví dụ, nếu bạn chỉ muốn xem các file Python, hãy chạy:
tree -P "*.py"Nếu bạn đang tìm kiếm tất cả các file văn bản, hãy sử dụng:
tree -P "*.txt"Bạn cũng có thể sử dụng ký tự đại diện và sáng tạo với các mẫu của mình. Giả sử bạn cần tìm tất cả các file bắt đầu bằng config; bạn có thể làm điều đó bằng:
tree -P "config*"Khi bạn sử dụng -P, cây vẫn sẽ hiển thị cấu trúc thư mục, nhưng nó sẽ chỉ hiển thị các file khớp với mẫu của bạn. Các thư mục trống, tức là những thư mục không chứa những file khớp, vẫn sẽ xuất hiện trong kết quả đầu ra. Nếu thấy điều này gây khó hiểu, bạn có thể sử dụng tùy chọn --prune:
tree -P "*.py" --pruneTùy chọn này sẽ xóa bất kỳ thư mục trống nào khỏi kết quả đầu ra, mang lại cho bạn một chế độ xem gọn gàng hơn, chỉ hiển thị các đường dẫn đến những file đích. Một điều nữa: Nếu bạn muốn loại trừ các tên trùng khớp với một mẫu, hãy sử dụng -I thay vì -P.
Hiển thị kích thước file ở định dạng dễ đọc
Thành thật mà nói, việc xem kích thước file theo byte không thực sự hữu ích. Khi một file có kích thước 524288 byte, bạn phải dừng lại và tính nhẩm mới ra được khoảng 512 KB. May mắn thay, tùy chọn -h giải quyết vấn đề này một cách tuyệt vời. Nó hiển thị kích thước file ở định dạng dễ đọc, đúng như cách chúng ta thường nghĩ về kích thước file. Ví dụ:
tree -h
Giờ đây, thay vì hiển thị 524288, bạn sẽ thấy 512K. Một file có kích thước 1048576 byte sẽ trở thành 1,0M. Điều này hữu ích khi bạn muốn tìm hiểu xem toàn bộ dung lượng ổ đĩa của mình đã đi đâu. Bạn có thể nhanh chóng quét qua cây thư mục và phát hiện các file lớn đáng ngờ.
Đây là một tổ hợp lệnh khác mà nhiều người thường dùng:
tree -hL 2Lệnh này cho thấy hai cấp độ sâu, với kích thước file có thể đọc được bằng con người.
Kết hợp tree với các lệnh khác
Trong Linux, sức mạnh thực sự không nằm ở bất kỳ lệnh đơn lẻ nào, mà nằm ở cách bạn kết hợp chúng. Lệnh tree chỉ xuất ra văn bản. Và chúng ta có thể chuyển nó sang các lệnh khác và thực hiện nhiều thao tác khác nhau trên đó. Dấu (|) lấy đầu ra từ lệnh bên trái và gửi nó làm đầu vào cho lệnh bên phải.
Giả sử bạn muốn chạy một cây thư mục trên một thư mục lớn, nhưng bạn không muốn nó lướt qua màn hình trong 30 giây. Bạn muốn có thể cuộn qua, tìm kiếm và đọc nó theo tốc độ của riêng mình. Bạn có thể làm điều này bằng cách kết hợp tree với lệnh less:
tree /usr/lib | lessChạy lệnh này, và màn hình của bạn sẽ khóa vào trang đầu tiên của đầu ra cây.

Giờ đây, bạn có thể sử dụng các phím mũi tên (Lên/Xuống), phím cách để di chuyển xuống một trang đầy đủ, / theo sau là một từ để tìm kiếm từ đó trong toàn bộ cây, q để thoát và quay lại dấu nhắc lệnh.
Lưu hoặc xuất kết quả của tree
Đôi khi, bạn cần lưu cấu trúc tree đó để sử dụng sau. Có thể bạn đang lập tài liệu cho một dự án, tạo báo cáo hoặc chỉ muốn lưu snapshot cấu trúc thư mục trước khi thực hiện thay đổi. Cách đơn giản nhất để thực hiện là sử dụng lệnh chuyển hướng như sau:
tree > directory_structure.txtLệnh này sẽ lưu toàn bộ kết quả đầu ra của cây vào một file văn bản. Đơn giản, hiệu quả và bạn có thể mở nó trong bất kỳ trình soạn thảo văn bản nào.
Bạn cũng có thể tạo một trang HTML với các liên kết có thể nhấp và những phần có thể thu gọn bằng cách sử dụng tùy chọn -H tích hợp:
tree -H . > structure.htmlMở nó trong trình duyệt và bạn sẽ có chế độ xem tương tác về cấu trúc thư mục của mình.
Để lưu trữ tài liệu, bạn cũng có thể lưu kết quả đầu ra với định dạng cụ thể:
tree -L 3 -a --dirsfirst > project_docs.txtTùy chọn --dirsfirst liệt kê các thư mục trước các file, giúp kết quả đầu ra được sắp xếp hợp lý hơn. Tùy chọn này hoàn hảo cho các file README hoặc tài liệu dự án.
Cuối cùng, bạn cũng có thể thêm vào các file hiện có nếu đang xây dựng một tài liệu lớn hơn:
tree -L 2 >> documentation.txtLệnh này sẽ thêm kết quả đầu ra của cây vào cuối file tài liệu hiện có của bạn mà không ghi đè lên những gì đã có.
Học IT










Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy