Hal ini biasanya benar pada sistem unix bahwa jumlah link ke direktori adalah jumlah subdirektori ditambah 2. Namun ada kasus di mana ini tidak benar:
Beberapa kesatuan memungkinkan tautan keras ke direktori. Maka akan ada lebih dari 2 tautan yang tidak sesuai dengan subdirektori.
Ada filesystem di mana direktori tidak memiliki entri untuk .
dan ..
. The GNU menemukan petunjuk menyebutkan beberapa contoh dalam pembahasan nya -noleaf
pilihan (yang menonaktifkan optimasi yang mengasumsikan bahwa .
dan ..
ada di semua direktori): “CD-ROM atau MS-DOS filesystem atau volume AFS mount point”
Cara yang hampir dapat diandalkan untuk menghitung jumlah subdirektori (masih mungkin gagal jika nama file berisi karakter baris baru) adalah
$(($(LC_ALL=C ls -la /path/to/directory | grep '^d' | wc -l) - 2)
Cara yang lebih dapat diandalkan menggunakan gumpalan shell */
dan .*/
; seperti biasa menangani case di mana polanya tidak cocok sedikit menyusahkan (kecuali dalam bash dan zsh di mana Anda dapat mengaktifkan nullglob
opsi).
-type d
, tetapi: 1. ini membutuhkan GNU find; 2. Anda perlu mengurangi 1 untuk direktori awal (atau lulus-mindepth 1
).