我有一个包含 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$