bash - 递归计算特定文件BASH

标签 bash recursion file-type

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

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

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

但我得到的结果是 0。有人帮忙吗?

最佳答案

为什么不使用 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

关于bash - 递归计算特定文件BASH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6268863/

相关文章:

recursion - 如何多次做到这个长度≤1?

android - Android MediaPlayer 类可以播放哪些文件类型?

objective-c - 始终在 NSDocument 中附加文件扩展名

Python 脚本不在 cron 作业中执行 bash 命令

linux - 意外的 EOF 错误

recursion - 调用自身的函数称为什么(这称为递归)?

c++ - 如何读取目录中最后修改的文件的文件名?

linux - 从 bash 脚本中的数字显示月份

regex - 否定字符类中的单引号

c - 查找二维矩阵中的最大值(递归)