搜索和计算目录和子目录中的文件[BASH]

时间:2012-03-23 12:18:36

标签: bash shell

我有一个关于搜索和计算目录和子目录中的文件的问题。我试着做这样的事情

for i in $(find $TEST_DIR -type d | wc -l ); do
        for j in $(find $i -type f | wc -l); do
            FILES=$[FILES+j]
        done    
        DIRS=$[DIRS+i]
    done

但它不起作用。我只需计算每个目录和子目录中的文件,然后我必须比较文件和目录的数量(子目录) 谢谢你的帮助:)

1 个答案:

答案 0 :(得分:3)

find命令将递归查找所有文件/目录,因此不需要for...loop

FILES=$(find $TEST_DIR -type f | wc -l)
DIRS=$(find $TEST_DIR -type d | wc -l)

如果您的文件名可能包含newline,请尝试以下操作:

FILES=$(find $TEST_DIR -type f -printf x | wc -c)