Để 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 $NUM
cá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 $NUM
cá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 %h
bản in của mỗi tập tin dirname
. awk
sau đó 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ả.