bash
Sử dụng globstartùy chọn shell, chúng ta có thể sử dụng tính năng đệ quy./**/*
bash-4.3$ shopt -s globstar
bash-4.3$ for i in  ./**/*.xml; do printf "%s\n" "$i" ; done
./adwaita-timed.xml
./bin/hw5/stuff/book/chapter42servletexample/build/web/META-INF/context.xml
./bin/hw5/stuff/book/chapter42servletexample/build/web/WEB-INF/beans.xml
./bin/hw5/stuff/book/chapter42servletexample/build/web/WEB-INF/web.xml
Perl
Perl có một mô-đun Find, cho phép duyệt qua thư mục cây đệ quy. Trong find()hàm đặc biệt , chúng ta có thể định nghĩa một chương trình con mong muốn và thư mục mà chúng ta muốn duyệt qua, trong ví dụ này là .. Một lớp lót trong trường hợp như vậy sẽ là:
bash-4.3$ perl -le 'use File::Find; find(sub{-f && $_ =~ /.xml$/ && print $File::Find::name},".")' 
./adwaita-timed.xml
./CLEAR_DESKTOP/blahblah/hw5/stuff/book/jsf2demo/build/web/WEB-INF/beans.xml
./CLEAR_DESKTOP/blahblah/hw5/stuff/book/jsf2demo/build/web/WEB-INF/web.xml
./CLEAR_DESKTOP/blahblah/hw5/stuff/book/liangweb/build.xml
Con trăn
Trong khi Perl có toàn bộ mô-đun dành riêng cho duyệt qua cây đệ quy, Python có một chức năng gọn gàng walk()là một phần của osmô-đun và liên tục trả về tuple của đường dẫn trên cùng, danh sách tất cả các thư mục con và danh sách tên tệp. Chúng tôi có thể làm như sau:
bash-4.3$ python -c 'import os,sys; [ sys.stdout.write(os.path.join(r,i)+"\n") for r,s,f in os.walk(".") for i in f if i.endswith(".xml") ]' 
./adwaita-timed.xml
./CLEAR_DESKTOP/blahblah/hw5/stuff/book/jsf2demo/build/web/WEB-INF/beans.xml
./CLEAR_DESKTOP/blahblah/hw5/stuff/book/jsf2demo/build/web/WEB-INF/web.xml
./CLEAR_DESKTOP/blahblah/hw5/stuff/book/liangweb/build.xml
Điều này có thể gọn gàng hơn như một kịch bản:
#!/usr/bin/env python
import os,sys 
for r,s,f in os.walk("."): 
    for i in f: 
        if i.endswith(".xml") 
             print(os.path.join(r,i))
tìm thấy
Các câu trả lời khác đã được đề cập findcho giao dịch đệ quy và đó là công cụ tiếp theo cho công việc. Điều cần đề cập là thực tế findcó nhiều công tắc dòng lệnh, chẳng hạn như -printfin đầu ra ở định dạng mong muốn, -type fchỉ tìm các tệp thông thường, -inumtìm kiếm theo số inode, -mtimetìm kiếm theo ngày sửa đổi, -exec <command> {} \;để thực thi một lệnh cụ thể để xử lý tệp với việc truyền tệp dưới dạng đối số (nơi giữ chỗ {}chuẩn findcho tệp hiện tại) và nhiều tệp khác vì vậy vui lòng đọc trang hướng dẫn find.
               
              
ls -R | grep .xml