我的目录中隐藏文件有问题。如果我使用$(find . -type f | wc -l)
它显示8个文件,它们也计算隐藏文件,那么应该只有7个文件。
有什么东西可以只计算可见文件吗?
答案 0 :(得分:2)
忽略以.
开头的名称:
find . ! -name '.*' -type f | wc -l
来自man
页面:
!表达
-not expression This is the unary NOT operator. It evaluates to true if the expression is false.
如果您有包含换行符的文件名,则可以使用gnu find
(在评论中gniourf gniourf建议):
find . ! -name '.*' -type f -maxdepth 1 -printf 'x' | wc -c
答案 1 :(得分:0)
find . -type f -not -path '*/\.*' | wc -l
-not -path
允许您忽略名称以.
开头的文件(隐藏文件)
答案 2 :(得分:0)
排除以(。)
开头的所有文件find ./ ! -name '\.*' -type f | wc -l
! simply negates the search
如果这不起作用,那么试试这个看起来很脏的解决方案:
ls -lR | egrep '^(-|l|c|b|p|P|D|C|M|n|s)' | wc -l
列出了除目录之外的所有类型的文件。 您可以在linux here
中找到文件类型没有-R
你只想看同一个目录。