Có phải danh sách chỉ thư mục đệ quy trong Linux không?

Is List Only Directories Recursively Linux



Từ đệ quy đề cập đến thực tế là các lệnh của hệ điều hành Linux hoặc Unix xử lý nội dung của các thư mục và nếu một thư mục có các thư mục con và tài liệu, thì lệnh vẫn hoạt động với tất cả các tài liệu đó (một cách đệ quy). Có thể là thư mục con có tập hợp các tệp và thư mục riêng (ví dụ: các thư mục lớn), v.v. Bạn sẽ sử dụng các hướng dẫn Linux khác nhau để duyệt đệ quy từng thư mục trước khi đưa nó đến rìa của thư mục được chỉ định. Ở cấp độ đó, các hướng dẫn Linux quay trở lại vòng quay của cây và lặp lại quy trình cho bất kỳ thư mục con nào tồn tại. Trong hướng dẫn này, bạn sẽ học tất cả các phương pháp để liệt kê các thư mục một cách đệ quy.

Ví dụ về Thư mục Danh sách Đơn giản

Trước hết, bạn phải biết cách liệt kê tất cả các thư mục từ hệ thống Linux của mình bằng lệnh danh sách đơn giản. Mở đầu cuối dòng lệnh và thử lệnh ls ’dưới đây để chỉ liệt kê các thư mục. Nó sẽ không chỉ liệt kê các thư mục mà còn tổng số các thư mục con và tệp nằm trong đó. Đầu ra hiển thị các thư mục với thông tin về chủ sở hữu, nhóm, đặc quyền đọc-ghi và ngày tạo thư mục.







$ ls -l



Để liệt kê tất cả các thư mục và tệp trong hệ thống Linux của bạn, bạn phải sử dụng -la thay vì -l đơn giản trong lệnh danh sách. Do đó, hãy thực hiện lệnh đã cập nhật để làm như vậy. Đầu ra hiển thị tất cả các tệp và thư mục cùng với thông tin bổ sung của chúng.



$ ls -la





Để đơn giản liệt kê các thư mục mà không có thông tin bổ sung, hãy thử lệnh dưới đây, theo sau là cờ -d.

$ ls –d * /



Bạn cũng có thể sử dụng lệnh tương tự với một chút sửa đổi để liệt kê các thư mục cùng với thông tin bổ sung của chúng. Bạn chỉ cần thêm cờ -l trong lệnh này như sau:

$ ls –l –d * /

Để chỉ kiểm tra tổng số tệp trong thư mục chính cụ thể, hãy thử lệnh được trình bày bên dưới trong trình bao. Bạn sẽ nhận được tổng số tệp trong hệ điều hành Linux của mình.

$ ls –l | egrep –v ‘^ d’

Ví dụ về danh sách thư mục đệ quy

Có nhiều loại lệnh đệ quy khác nhau có sẵn trong Hệ thống Linux, có thể được sử dụng để liệt kê các thư mục một cách đệ quy. Để hiểu từng tệp một cách riêng biệt, giả sử bạn có 5 tệp trong thư mục Linux có tên Tài liệu.

Liệt kê đệ quy sử dụng cờ -lR

Để sử dụng cờ -lR trong truy vấn của bạn để liệt kê đệ quy tất cả các thư mục của hệ thống Linux của bạn là phương pháp đầu tiên để làm như vậy. Khi thực hiện lệnh danh sách bên dưới, nó sẽ liệt kê tất cả các thư mục và thư mục con của chúng cùng với các chi tiết bổ sung của chúng, như được hiển thị trong đầu ra.

$ ls -lR

Hãy để chúng tôi liệt kê một cách đệ quy tất cả các tệp hoặc thư mục từ một số thư mục hoặc thư mục cụ thể trong hệ thống Linux của bạn. Với mục đích này, hãy thêm đường dẫn vị trí của thư mục cụ thể để liệt kê nó một cách đệ quy. Chúng tôi muốn liệt kê đệ quy tất cả các tệp và thư mục của thư mục Tài liệu nằm trong thư mục chính bằng cách sử dụng lệnh cập nhật bên dưới. Đầu ra hiển thị tất cả các tệp và thư mục trong thư mục Documents cùng với thông tin bổ sung của nó.

$ ls –lR / home / aqsayasin / Documents /

Liệt kê đệ quy bằng cách sử dụng lệnh tìm

Hãy tự hiểu rằng không phải tất cả các hệ thống Linux, ví dụ: macOS, hệ điều hành giống Unix, đều có lựa chọn sử dụng -R để liệt kê các thư mục. Trong trường hợp đó, có các lệnh khác có sẵn để đáp ứng nhu cầu của chúng ta, đó là lệnh tìm và in. Trong lệnh này, chúng tôi sẽ cung cấp một đường dẫn đến một thư mục cùng với đòn bẩy của việc sử dụng lệnh -ls. Khi -ls đang được sử dụng trong lệnh, điều này có nghĩa là nó cũng sẽ hiển thị thông tin bổ sung liên quan đến các tệp và thư mục đang cư trú của một thư mục cụ thể. Hãy thử lệnh được nêu dưới đây trong trình bao để liệt kê một cách đệ quy tất cả các tệp và thư mục của thư mục Documents.

$ find / home / aqsayasin / Documents / -print -ls

Bây giờ, bạn phải thử hướng dẫn tương tự trong shell với một chút thay đổi. Chúng tôi sẽ tránh sử dụng cờ -ls trong lệnh này để ngừng hiển thị thông tin bổ sung liên quan đến tệp. Thực thi truy vấn được liệt kê bên dưới trong trình bao và bạn sẽ có kết quả hiển thị.

$ find / home / aqsayasin / Documents / -print

Liệt kê đệ quy bằng lệnh -du

Hãy xem một ví dụ khác để liệt kê đệ quy các tệp hoặc thư mục bằng một phương pháp mới khác. Lần này, chúng ta sẽ sử dụng lệnh -du để thực hiện mục đích của mình. Lệnh này chứa cờ -a trong đó. Cùng với các cờ, chúng ta cũng phải chỉ định vị trí thư mục. Hãy để chúng tôi thực hiện hướng dẫn dưới đây trong terminal shell để liệt kê đệ quy tất cả các thư mục hoặc tệp của thư mục Documents. Kết quả hiển thị 5 bản ghi cho nó, như hình dưới đây. Bạn có thể thấy lệnh này cũng hiển thị số lượng vết cắn nằm trong mỗi tệp.

$ du –a / home / aqsayasin / Documents /

Liệt kê đệ quy bằng cách sử dụng lệnh cây

Cuối cùng nhưng không kém phần quan trọng, chúng ta có một phương pháp lệnh cây rất đơn giản và dễ sử dụng để liệt kê đệ quy các tệp hoặc thư mục. Chúng tôi sẽ không sử dụng bất kỳ cờ nào trong lệnh này cho đến nay. Bạn phải xác định vị trí thư mục cùng với cây từ khóa. Hãy để chúng tôi có một ví dụ về nó bằng cách sử dụng lệnh được liệt kê dưới đây. Kết quả hiển thị đầu ra kiểu phân nhánh cây của thư mục Documents. Nó hiển thị 0 thư mục và 5 tệp trong đầu ra.

$ tree / home / aqsayasin / Documents /

Hãy thử cùng một lệnh cây với một vị trí khác. Lần này chúng tôi liệt kê đệ quy các thư mục của thư mục 'Trang chủ' của người dùng aqsayasin. Kết quả hiển thị các nhánh của thư mục Trang chủ có tổng cộng 14 thư mục, thư mục con và 5 tệp khác nhau.

$ tree / home / aqsayasin /

Phần kết luận

Chúng tôi đã thử tất cả các phương pháp đệ quy để liệt kê một cách đệ quy các thư mục và tệp, ví dụ: cờ -lR, lệnh tìm và in, du và cây