如何查找给定扩展名的所有文件名

我需要在我的系统上find所有的.pem文件。 下面是否会这样做?

 sudo find / -type f -name *.pem 

如果没有,我将如何编写一个find命令来查找每个文件的sorting?

你在正确的轨道上 – 你只需要引用这个模式,这样它就可以被find而不是你的shell来解释:

 sudo find / -type f -name '*.pem' 

使用find /通常会很慢。 使用locate速度要快得多,但有些不准确,因为它不支持任何比子string匹配更复杂的东西。 一个名为.pembroke的目录将被find,并通过定位以及其中的每个文件来返回。

然而, locategrep组合具有速度精度。 方便,它也不需要sudo

 locate .pem | grep "\.pem$" 

缺点? 数据库locate使用通常每天只更新一次,因此不会find最近的更改(添加,删除,名称更改等)。

几乎!

 sudo find / -type f -name \*.pem 

要么

 sudo find / -type f -name "*.pem" 

否则shell会解释*而不是find。

…或者如果mlocate在您的计算机上运行,​​并且您不需要最实际的数据使用定位命令

find* .pam

它更快,因为它发现以前创build的数据库中的文件; 不是整个系统。

 sudo find / | grep .pam 

认为应该工作。