find 命令的 csh 管道输出

csh pipe output of find command

我正在尝试获取文件夹的每个目录中的目录数。

基本上我想进入给定目录中的每个文件夹,然后 运行 'ls -l | wc -l'

假设我在具有以下结构的目录中:

├── sq1         
│   ├── 12      
│   ├── 123     
│   └── 1234    
├── sq2         
│   ├── 1       
│   ├── 123     
│   ├── 1234    
│   └── 345     
├── sq3 

我希望我的输出类型为:

sq1 3
sq2 4
sq3 0   

我试过了:

find -maxdepth 1 -type d -exec find {} -maxdepth 1 -type d \;

但这列出了所有内容。我需要单独计算。我该怎么做?我是 运行ning csh。

非常感谢帮助

ls 实用程序在其第二列中打印指向目录的链接数。该数字是子目录的数量。 ... 这两个目录也被计算在内。它们在每个目录中。因此,您必须从该值中减去 2

$ ls -ld */ | awk '{print " "-2}'
sq1/ 3
sq2/ 4
sq3/ 0

或使用 stat 实用程序:

$ LC_ALL=C stat -c "%F %n %h" * | awk '=="directory"{print " "-2}'
sq1 3
sq2 4
sq3 0