递归计算特定文件BASH

jam*_*esy 8 bash recursion file-type

我的目标是编写一个脚本来递归搜索当前工作目录和子目录,并打印出普通文件数,目录数,块特殊文件数,字符特殊文件数,计数FIFO和一系列符号链接.我必须使用[[]]进行条件测试.问题是我不太确定如何开始.

我尝试了类似下面的内容来搜索所有普通文件,但我不确定递归在BASH脚本中是如何工作的:

function searchFiles(){
    if [[ -f /* ]]; then
        return 1
    fi
}
searchFiles
echo "Number of ordinary files $?"
Run Code Online (Sandbox Code Playgroud)

但结果是0.有人帮忙吗?

Mat*_*ttH 40

你为什么不用find

$ # Files
$ find . -type f | wc -l
327
$ # Directories
$ find . -type d | wc -l
64
$ # Block special
$ find . -type b | wc -l
0
$ # Character special
$ find . -type c | wc -l
0
$ # named pipe
$ find . -type p | wc -l
0
$ # symlink
$ find . -type l | wc -l
0
Run Code Online (Sandbox Code Playgroud)