Solaris tương đương với độ sâu / tỉa?


10

Tôi đang cố gắng tìm một số tập tin trong một thư mục. Theo mặc định, tìm commandkiếm đang tìm kiếm thư mục mà tôi đã chỉ định và đó là thư mục con.

Tôi đã cố gắng sử dụng depth/maxdepthprune, nhưng không có gì giúp khắc phục điều này. Ai đó có thể chỉ ra cách đúng để sử dụng độ sâu / cắt tỉa trong Solaris không?

Mã của tôi trông như thế này:

find file_path -depth 1 -name '*.log'

Tôi nhận được lỗi sau:

find: bad option 1
find: [-H | -L] path-list predicate-list

Câu trả lời:


15

Bạn đang nhầm lẫn hai tùy chọn không liên quan có tên tương tự mơ hồ:

  • -depthkhông có bất kỳ tranh luận. Nếu có, nó findsẽ xử lý nội dung của một thư mục trước khi xử lý chính thư mục đó.
  • -maxdepth N (trong đó N là một số nguyên) giới hạn đệ quy ở mức N của các thư mục con.

Các -maxdepthlựa chọn là một phần mở rộng được tìm thấy trong một số phiên bản của find, nhưng không điều hành Solaris của. Có một mẹo để chỉ sử dụng các tùy chọn tiêu chuẩn findđể xử lý thư mục mà không cần đệ quy: sử dụng -prunetrên các thư mục con, nhưng loại trừ thư mục toplevel. Vì cách duy nhất để khớp với thư mục toplevel là theo tên, hãy sắp xếp tên thành .(sẽ không bao giờ là tên của thư mục con).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print

Tôi đã phải đối mặt với vấn đề này rất nhiều, và giải pháp này đã giúp. Tôi đã dành một ngày cố gắng tìm một giải pháp để làm việc này. Grrr, Solaris.
Kevin Teljeur

Bạn có thấy bất kỳ vấn đề nào khi sử dụng sed để xóa /./ find $ {thư mục} / sh /. -Tên . -o -type d -prune -o -print | sed 's /\/\.\//\//'
Ethan Post

@EthanPost Bạn có thể làm điều đó, nhưng tìm các triển khai mà không có -mindepth-maxdepthlà một giống biến mất. Nếu phát hiện của bạn có -maxdepth, hãy sử dụngfind /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log'
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Chỉ cần một người để phá vỡ bạn khi bạn đang xây dựng một khung có thể cần phải chạy trong một tình huống như vậy! Thị trường đó có thể là bánh mì và bơ của tôi một ngày nào đó! Cảm ơn đã giúp đỡ.
Ethan Post
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.