如何使用 grep 查找目录中的所有 zip 文件?

如何使用 grep 查找目录中的所有 zip 文件?

我有一个包含 1000 多个文件的目录,其中一些是 .zip 文件,我想将它们全部转换为 .tgz 文件。

我想使用 grep 列出文件名。我试过“grep *.zip”,但无济于事。阅读手册页时,我认为 * 是一个通用选择器。为什么它不起作用?

谢谢。

答案1

您确实应该使用find

find <dir> -iname \*.zip

示例:要搜索.zip当前目录和所有子目录中的所有文件,请尝试以下操作:

find . -iname \*.zip

这将列出所有以 结尾的文件,.zip无论大小写。如果您只想要小写的文件,请将其更改-iname-name

该命令grep搜索文件中的字符串,而不是文件。你可以使用它来find列出所有.zip文件,如下所示

find . |grep -e "\.zip$"

答案2

Grep 默认使用正则表达式。你想要的表达式是:

grep .zip$

find不过你可能想使用。

查找 .-name '*.zip'

或者您可以通过管道将 find 插入 grep

find . | grep .zip$

相关内容