【发布时间】:2015-06-15 19:28:11
【问题描述】:
好的,所以我在一个文件夹中有一个 .GZ 文件的基调,我希望递归地查看每个文件并将所有 PNG 文件提取到另一个目标文件夹中。我该怎么做?
编辑:
我一直在终端使用此命令在 GZ 文件中查找字符串并将整个文件复制到另一个目标目录。然后用它做事。有一些缺点。一,当我输入“PNG”时,它会找到引用“PNG”而不是文件类型的CSS文件等文件。其次,除了复制整个文件之外,它不会向目录输出任何内容。我想提取文件。
find . -type f -print0 | xargs -0 grep -lh "png" | xargs -I % cp % /some_destination
编辑:
这是一个示例文件夹结构:
FILE001.GZ、FILE002.GZ、FILE003.GZ等
并非所有文件都包含 PNG,其中一些文件在文件夹结构中包含许多文件。我想要的是另一个目标文件夹中的以下内容:
34950560.png、3959560.png等
提前谢谢你!
【问题讨论】:
-
gz 只包含一个文件,所以只需查找
foo.png.gz。如果它们是 tar 文件,则不能。文件名在 tar 中,现在已压缩,您无法弄清楚png在压缩后的 tar 中变成了哪些随机字节。换句话说,您将解压缩每个 tar 文件并列出其中的文件。 -
它们都是gz文件,所以tar问题不是问题。我没有按照你的意思寻找 foo.png.gz 吗?提前感谢您的帮助。
-
find . -name \*.png.gz。完成 -
不,不是这样。
-
如果它们包含“实体文件夹结构”,那么它们就不是普通的 gz 文件。他们必须是 tar.gz