Nguyên nhân -depth
chính find
khiến nó thực hiện tìm kiếm theo chiều sâu.
Tuy nhiên, chuỗi mặc định không phải là tìm kiếm đầu tiên.
Trình tự mặc định có thể được mô tả không chính thức như là một "giao dịch theo chiều sâu xử lý các nút khi chúng gặp lần đầu thay vì làm như vậy trong quá trình quay lui."
Tôi có một nhu cầu thực sự cho chiều rộng tìm kiếm đầu tiên. Làm thế nào tôi có thể find
cư xử theo cách này?
Để minh họa, với các thiết lập sau:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find
có hành vi mặc định sau:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
và với -depth
, nó thực hiện như sau:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Tuy nhiên, điều tôi muốn là tùy chọn (hư cấu) sau:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
Nói cách khác, tôi cần find
xử lý / báo cáo về tất cả các tệp / thư mục ở độ sâu nhất định trước khi tiếp tục.
Tôi có thể làm cái này như thế nào?
-bfs
sẽ không phải là thứ tôi cần ... Tôi có một tập lệnh đơn giản tạo ra một chỉ mục cho một dự án GitLab lớn, phù hợp để đưa vào GitLab Wiki. Nó làm cho các tiêu đề phân cấp dựa trên tên thư mục. Nó hoạt động rất tốt, ngoại trừ trong cấu trúc tệp ví dụ ở trên, nó sẽ đặt delta
dưới tiêu đề charlie
phụ, thay vì dưới alpha
tiêu đề chính.
find
đầu ra của tôi được sắp xếp theo thứ tự abc. Không biết tại sao ....
-bfs
có thể có ích, ngay cả khi nó không hoàn toàn phù hợp với trường hợp sử dụng này.
find
(ít nhất, không chỉ vớifind
). Bạn có muốn chỉ liệt kê các tập tin, hoặc bạn muốn sử dụng các bầu cử sơ bộ khác?