Cách in cây thư mục trong terminal


130

Lệnh nào có thể được sử dụng để vẽ cây thư mục bên trong trình giả lập thiết bị đầu cuối?

nhập mô tả hình ảnh ở đây

Câu trả lời:


175

Bạn có thể sử dụng treeđể in cây thư mục trong thiết bị đầu cuối. Cài đặt treetừ thiết bị đầu cuối,

sudo apt-get install tree

Để xem cây thư mục, sử dụng

tree /path/to/folder

Hoặc điều hướng đến một thư mục và chỉ cần sử dụng

tree

Nó có một số tùy chọn nâng cao quá. Bạn có thể thấy chủ sở hữu username, groupname, ngày sửa đổi cuối cùng của một tập tin / thư mục và vân vân sử dụng tree. Nó hỗ trợ màu thư mục lsđể bạn có thể thấy các kết quả đầu ra.

Xem man treeđể biết thêm.


6
Nếu bạn muốn cây chỉ thư mục sử dụng -dchuyển đổi.
souravc

công cụ sạch sẽ và dễ dàng
zhihong 16/2/2015

3
hoặc nếu bạn sử dụng brew trên OSX. "brew install tree"
AshHimelf

Tôi đã tìm kiếm cách thực hiện trên Win7 + cmder: treehoạt động tốt.
Benj

@AshHimelf yep đánh tôi với nó. ;)
jamescampbell

46

Bạn có thể làm điều đó dễ dàng với lệnh sau:

find . -type d | sed -e "s/[^-][^\/]*\//  |/g" -e "s/|\([^ ]\)/|-\1/"

Lệnh này sẽ tìm kiếm đệ quy các thư mục bên trong thư mục mẹ và sau đó vẽ cây của các thư mục đã thành lập.

Bạn cũng có thể thử các cách sau để bao gồm tất cả các tệp.

find | sed 's|[^/]*/|- |g'

7
Hãy phân chia và giải thích các lệnh trên cho tôi.
Avinash Raj

3
@AvinashRaj Buddy tổng thể của lệnh là rõ ràng nếu bạn muốn tìm hiểu thêm về sed, vui lòng tham khảo một số hướng dẫn hoặc google nó. Thật khó để giải thích tất cả sed ở đây!
Maythux

2
Maythux, bạn đúng rằng nếu bạn hiểu về sed thì kịch bản của bạn rất rõ ràng, nhưng đừng dại dột nghĩ sed / regexes là bất cứ thứ gì ngoại trừ một ngôn ngữ khó hiểu mà bạn đã học được trong nhiều năm qua. Nó hầu như không trực quan - mà tôi nghĩ là tinh thần của bình luận của Avinash Raj.
aaaaaa

Tôi cần gì để thay đổi để bỏ qua các thư mục ẩn?
cadams

1
Làm thế nào để rời khỏi một thư mục cụ thể?
Deepak Dholiyan

14

Có một chương trình được gọi là treeliệt kê nội dung thư mục trong cấu trúc cây.

Tôi nghĩ rằng nó nằm trong kho (hoặc thậm chí được cài đặt)

sudo apt install tree

tree -d /path/to/directory

Kiểm tra liên kết này để biết thêm.

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.