Ramy Asked: 2021-07-24 21:34:19 +0800 CST2021-07-24 21:34:19 +0800 CST 2021-07-24 21:34:19 +0800 CST 如何在linux中批量删除没有扩展名的zip文件 772 我有一个充满不同文件但没有扩展名的文件夹。如何删除所有 zip 文件? bash-scripting zip 1 个回答 Voted Best Answer Kamil Maciorowski 2021-07-24T22:52:54+08:002021-07-24T22:52:54+08:00 在我的 Kubuntu 中,以下命令: file -b --mime-type path/to/some/zip 返回: application/zip 我可以使用它来检测当前目录(带有子目录)中的所有 zip 文件。命令是: find . -type f -exec sh -c ' for f do file -b --mime-type "$f" | grep -q "^application/zip$" && { printf "%s\n" "$f" # rm "$f" } done ' find-sh {} + 如果结果看起来很正常,请取消注释rm "$f"(删除#)以实际删除文件。 笔记: 既不-b是也不--mime-type是可移植的选项file。如果您file不支持它们,请检查裸file path/to/some/zip打印。它可能是: path/to/some/zip: Zip archive data, … 其中…表示附加信息。如果我需要依赖此输出,那么我的grep命令将是: grep -q ": Zip archive data" 但它会(可能)错误地检测名称中带有这个字符串的文件。无论如何,调整你grep的file印刷品。 find-sh在这里解释:什么是第二个 sh sh -c 'some shell code' sh? 该命令不关心文件名(在 Linux 中,您所说的“扩展名”只是文件名的一部分)。它回答了您在帖子正文中提出的问题(“如何删除所有 zip 文件?”),而不是标题(“如何批量删除没有扩展名的 zip 文件”)。
在我的 Kubuntu 中,以下命令:
返回:
我可以使用它来检测当前目录(带有子目录)中的所有 zip 文件。命令是:
如果结果看起来很正常,请取消注释
rm "$f"
(删除#
)以实际删除文件。笔记:
既不
-b
是也不--mime-type
是可移植的选项file
。如果您file
不支持它们,请检查裸file path/to/some/zip
打印。它可能是:其中
…
表示附加信息。如果我需要依赖此输出,那么我的grep
命令将是:但它会(可能)错误地检测名称中带有这个字符串的文件。无论如何,调整你
grep
的file
印刷品。find-sh
在这里解释:什么是第二个 shsh -c 'some shell code' sh
?该命令不关心文件名(在 Linux 中,您所说的“扩展名”只是文件名的一部分)。它回答了您在帖子正文中提出的问题(“如何删除所有 zip 文件?”),而不是标题(“如何批量删除没有扩展名的 zip 文件”)。