我是Stack Overflow的新手,我有点像Linux的新手。我一直在尝试使用以下命令过滤父目录中的特定文件及其子项:
ls -R | grep '*.jpg' | wc -l
我在寻找单个文件时发现了很多,但我需要每月执行此操作,并寻找更快的方法在一个命令中列出几种类型。我故意想要排除隐藏文件。
我试过这个但无济于事 - Count number of specific file type of a directory and its sub dir in mac
我已经在list, find, tree, echo
等网络上看到了不同的方法,所以对此的任何帮助都会非常感激,如果有更好的方法来做到这一点,那么我现在正在做的那样&# 39;这不是问题,因为我愿意接受建议。我现在还不确定什么是给这只猫皮肤最好的方法!
非常感谢
答案 0 :(得分:5)
您可以在find
的帮助下执行此操作,因为您在初始帖子的链接中提到了这一点。
就像这样:
find . -name \*.jpg -or -name \*.png -not -path \*/\.\* | wc -l
答案 1 :(得分:0)
您可以针对多种模式进行grep
过滤。您应该在linux中了解联机帮助页,只需在终端中键入man grep
,您就会看到该程序的功能和方式。
对于您的问题,您可以例如用它来过滤png和jpeg文件(加入区分大小写,从而得到PNG和png文件):
ls -R | grep -i '*.jpg\|*.png' | wc -l
-i
将忽略名称的大小写,\|
是一个或连接。
答案 2 :(得分:0)
感谢所有人的贡献,如果这证明对那里的人有用,我得到了一位开发人员朋友的帮助,他对我很友好,并且我发现这些对我来说最有效。案例如下:
find . -type f \( -iname "*.jpg" ! -iname ".*.png" ! -path "*/.HSResource/*" \) |wc -l
这会跳过资源文件夹和隐藏文件,似乎会返回正确的结果。