เพื่อนับไดเร็กทอรีทั้งหมด รวมถึงสิ่งที่ซ่อนอยู่ ในต้นไม้ที่หยั่งรากที่ไดเร็กทอรีปัจจุบัน . ทั้ง
หา . -พิมพ์ d -printf '\n' | สุขา -l
หรือ
หา . -พิมพ์ d -พิมพ์f x | สุขา - ค
(คุณสามารถแทนที่อักขระใด ๆ แทน x: หากคุณเลือกอักขระพิเศษสำหรับเชลล์ อย่าลืมใส่เครื่องหมายอัญประกาศหรือหลีกอักขระนั้น) โดยใช้ พิมพ์f '\n' | สุขา -l หรือ พิมพ์f x | สุขา - ค แทนที่จะส่งรายชื่อไฟล์ไปให้ สุขา -l จะทำให้การนับถูกต้องแม้ว่าจะมีไดเร็กทอรีที่มีชื่อก็ตาม บรรจุ ขึ้นบรรทัดใหม่
คำสั่งทั้งสองรวมถึงไดเร็กทอรีเริ่มต้น . ในการนับ - หากคุณต้องการนับอย่างเคร่งครัด ย่อยไดเรกทอรีแล้วลบ 1 หรือเพิ่ม - ความลึกขั้นต่ำ 1
หา . -ความลึกขั้นต่ำ 1 -type d -printf '\n' | สุขา -l
หรือใช้ ! -ชื่อ . เพื่อไม่รวม . ไดเร็กทอรีอย่างชัดเจน
หากคุณต้องการยกเว้นไดเร็กทอรีที่ซ่อนอยู่ (รวมถึงที่เป็นไปได้ ไม่ใช่- ไดเร็กทอรีย่อยที่ซ่อนอยู่ของไดเร็กทอรีที่ซ่อนอยู่) จากนั้น พรุน อดีตพวกเขา
ค้นหา -minเชิงลึก 1 -type d \( -name '.*' -prune -o -printf x \) | สุขา - ค
อีกวิธีหนึ่งคือใช้การหมุนซ้ำของเชลล์เพื่อสำรวจต้นไม้ ใช้ zsh เช่น
dirs=( **/(ND/) )
พิมพ์ $#dirs
ที่ไหน (ND/) เป็น รอบคัดเลือกระดับโลก ที่ทำให้ **/ จับคู่ไดเร็กทอรีเท่านั้นและรวมที่ซ่อนอยู่ ("งot") อัน - ละเว้น the ง หากคุณต้องการนับเฉพาะไดเร็กทอรีที่ไม่ซ่อนอยู่
คุณสามารถทำสิ่งที่คล้ายกันใน bash:
shopt -s nullglob dotglob globstar
ตั้ง -f -- **/
พิมพ์f '%d\n' "$#"
แต่ไม่เหมือนกับของ zsh / รอบคัดเลือก, the **/ รูปแบบลูกโลกจะจับคู่ทุกอย่างที่ดูเหมือนไดเร็กทอรี รวมถึงลิงก์สัญลักษณ์ไปยังไดเร็กทอรี