Một giải pháp bash tinh khiết:
shopt -s nullglob
dirs=( /path/to/directory/*/ )
echo "There are ${#dirs[@]} (non-hidden) directories"
Nếu bạn cũng muốn đếm các thư mục ẩn:
shopt -s nullglob dotglob
dirs=( /path/to/directory/*/ )
echo "There are ${#dirs[@]} directories (including hidden ones)"
Lưu ý rằng điều này cũng sẽ tính các liên kết đến các thư mục. Nếu bạn không muốn điều đó, thì sẽ khó hơn một chút với phương pháp này.
Sử dụng find
:
find /path/to/directory -type d \! -name . -prune -exec printf x \; | wc -c
Bí quyết là xuất một x
to stdout mỗi khi tìm thấy một thư mục, sau đó sử dụng wc
để đếm số ký tự. Điều này sẽ đếm số lượng tất cả các thư mục (bao gồm cả những thư mục ẩn), không bao gồm các liên kết.
Các phương pháp được trình bày ở đây là tất cả các ký tự vui nhộn an toàn có thể xuất hiện trong tên tệp (dấu cách, dòng mới, ký tự hình cầu, v.v.).