Để liệt kê các thư mục con ngay lập tức chứa các tệp chính xác $NUM .
find -maxdepth 2 -mindepth 2 -type f -printf '%h\0' | awk -v num="$NUM" 'BEGIN{RS="\0"} {array[$0]++} END{for (line in array) if (array[line]==num) printf "%s\n", line}'
Để liệt kê các thư mục con ngay lập tức chứa lớn hơn $NUMcác tệp.
find -maxdepth 2 -mindepth 2 -type f -printf '%h\0' | awk -v num="$NUM" 'BEGIN{RS="\0"} {array[$0]++} END{for (line in array) if (array[line]>num) printf "%s\n", line}'
Để liệt kê các thư mục con ngay lập tức chứa ít hơn $NUMcác tệp.
find -maxdepth 2 -mindepth 2 -type f -printf '%h\0' | awk -v num="$NUM" 'BEGIN{RS="\0"} {array[$0]++} END{for (line in array) if (array[line]<num) printf "%s\n", line}'
Các mục được kết thúc bằng ký tự null \0, vì vậy tên tệp chứa dòng mới hoặc các loại khoảng trắng khác sẽ được hiểu chính xác. Các %hbản in của mỗi tập tin dirname. awksau đó sử dụng một mảng để đếm số lần nó gặp mỗi thư mục, in nó nếu điều kiện được đáp ứng.
Xin lưu ý rằng không có lệnh nào nói trên sẽ hiển thị các thư mục chứa tệp không. Cũng lưu ý rằng bằng tệp tôi đang đề cập đến các tệp thông thường, không phải liên kết, thư mục, ổ cắm, khối, ống có tên, vân vân.
Tôi đã cố gắng làm điều này đơn giản nhất có thể. Nếu bạn muốn tìm các thư mục con đệ quy hoặc các tệp trong đó, một lệnh được sửa đổi là bắt buộc. Có quá nhiều khả năng để liệt kê tất cả.