Sử dụng thành tích tìm kiếm không hồi quy?


19

Sử dụng /bin/find /root -name '*.csv'trả về:

/root/small_devices.csv
/root/locating/located_201606291341.csv
/root/locating/located_201606301411.csv
/root/locating/g_cache.csv
/root/locating/located_201606291747.csv
/root/locating/located_201607031511.csv
/root/locating/located_201606291746.csv
/root/locating/located_201607031510.csv
/root/locating/located_201606301412.csv
/root/locating/located_201606301415.csv
/root/locating/located_201607031512.csv

Tôi thực sự không muốn tất cả các tập tin bên dưới /root/locating/, vì vậy đầu ra dự kiến ​​chỉ đơn giản là /root/small_devices.csv.

Có cách nào hiệu quả để sử dụng 'find' không đệ quy không?

Tôi đang sử dụng CentOS nếu có vấn đề.


4
Tại sao bạn không thể làm một cái gì đó như thế echo /root/*.csv?
Stephen Harris

1
@StephenHarris Chủ yếu vì tôi không nghĩ về điều đó :)
DeepSpace

Câu trả lời:


27

Bạn có thể làm điều đó với -maxdepthtùy chọn

/bin/find /root -maxdepth 1 -name '*.csv'

Từ man find

cấp độ tối đa

Giảm xuống ở hầu hết các cấp (một số nguyên không âm) của các thư mục bên dưới điểm bắt đầu.

-thay 0

có nghĩa là chỉ áp dụng các bài kiểm tra và hành động cho các điểm bắt đầu.


8

Với tiêu chuẩn find:

find /root ! -path /root -prune -type f -name '*.csv'

Điều này sẽ cắt (loại bỏ) tất cả các thư mục trong /roottìm kiếm, ngoại trừ chính /rootthư mục đó và tiếp tục in tên tệp của bất kỳ tệp thông thường nào khớp *.csv.

Với GNU find(và bất kỳ findtriển khai nào khác hiểu -maxdepth):

find /root -maxdepth 1 -type f -name '*.csv'

Xem thêm -depth 1(tương đương với GNU -mindepth 1 -maxdepth 1) với FreeBSD find.
Stéphane Chazelas

@ StéphaneChazelas Tôi sẽ không đề cập -depth, nó không làm những gì chúng ta muốn trên OpenBSD (nó giống như -d, "truy cập các thư mục theo thứ tự sau"). Điều đó finddường như có -maxdepthmặc dù ...
Kusalananda

1
Vâng, có vẻ như đó chỉ là FreeBSD (và các công cụ phái sinh như Apple OS / X), không phải NetBSD hay OpenBSD. Xấu hổ như -depth -2, -depth +1, -depth 1mà theo định dạng giống như rất nhiều các vị từ khác có ý nghĩa hơn -mindepth, -maxdepthIMO.
Stéphane Chazelas
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.