如何递归地计数Linux目录中的文件?
我发现了这个:
find DIR_NAME -type f ¦ wc -l
但是当我运行它时,它返回以下错误。
查找:路径必须在表达式之前:
如何递归地计数Linux目录中的文件?
我发现了这个:
find DIR_NAME -type f ¦ wc -l
但是当我运行它时,它返回以下错误。
查找:路径必须在表达式之前:
当前回答
如果你想知道当前目录下每个目录下有多少文件:
for i in */ .*/ ; do
echo -n $i": " ;
(find "$i" -type f | wc -l) ;
done
当然,这些都可以写在一行上。括号说明wc -l应该监视谁的输出(在本例中查找$i -type f)。
其他回答
这将完全正常工作。简单的短。如果要计算文件夹中存在的文件数量。
ls | wc -l
ls -l | grep -e -x -e -dr | wc -l
长串 过滤文件和dirs 计算过滤后的行号
假设你想要一个每个目录的文件总数,试试:
for d in `find YOUR_SUBDIR_HERE -type d`; do
printf "$d - files > "
find $d -type f | wc -l
done
对于当前目录,尝试这样做:
for d in `find . -type d`; do printf "$d - files > "; find $d -type f | wc -l; done;
如果你有很长的空格名,你需要改变IFS,像这样:
OIFS=$IFS; IFS=$'\n'
for d in `find . -type d`; do printf "$d - files > "; find $d -type f | wc -l; done
IFS=$OIFS
这里有很多正确答案。这是另一个!
find . -type f | sort | uniq -w 10 -c
在哪里。是要查找的文件夹,10是对目录进行分组的字符数。
找到-type f | wc -l
OR(如果目录是当前目录)
找到。-type f | wc -l