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

Dav*_*aux 8 grep

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

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

谢谢你。

Zok*_*oke 13

你真的应该find改用。

find <dir> -iname \*.zip
Run Code Online (Sandbox Code Playgroud)

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

find . -iname \*.zip

这将列出所有以.zip有关案例结尾的文件。如果您只希望将小写更改-iname-name

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

find . |grep -e "\.zip$"
Run Code Online (Sandbox Code Playgroud)

  • 鉴于 .zip 文件可能来自“其他平台”之一,可以想象它们可能包含空格。假设转换过程被捆绑到一个脚本中,比如`zip2tgz`,使用`find -iname '*.zip' -print0 | 可能稍微方便一些。xargs -0 zip2tgz` 或 `find -iname '*.zip' -exec zip2tgz '{}' \;` (2认同)