今天当我使用“find”命令时。它的用法有点令人困惑。
问题:我想计算主目录下有多少个gz文件。但是,主目录也有子目录。例如/ mainDir / Dir1 / 1 / / mainDir / Dir2 / 1/2012。在每个子文件夹下,有几个gz文件。
我使用命令1,它工作正常。
首先我去主目录:
ls -R . | find -name "*.gz" | wc -l
但是,如果我使用命令2,则返回0:
ls -R /home/user1/data1/2012/mainDir | find -name "*.gz" | wc -l
是什么原因,任何人都有所了解?
感谢,
答案 0 :(得分:4)
您不需要ls
。只需find . -name '*.gz' | wc -l
或find /home/user1/data1/2012/mainDir -name '*.gz' | wc -l
。在连字符选项(如find
)之前的-name
命令中的单词是要搜索的目录的名称。
答案 1 :(得分:0)
这个怎么样:
find /home/user1/data1/2012/mainDir -name "*.gz" | wc -l
这符合标准查找语法,可以满足您的需求。