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
我正在尝试获取文件夹的每个目录中的目录数。
基本上我想进入给定目录中的每个文件夹,然后 运行 '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