确定特定文件是否被压缩

确定特定文件是否被压缩

在 Linux 中如何使用命令知道特定文件是否被压缩?

答案1

您可以尝试使用file,例如:

$ file test.sh.gz
test.sh.gz: gzip compressed data, was "test.sh", from Unix, last modified: Wed Feb  6 14:35:33 2013

答案2

在 bash 脚本中

if (file yourTestFile | grep -q compressed ) ; then
     echo "Yes, yourTestFile is compressed"
fi

答案3

在其上运行file命令。它将识别压缩文件以及其他常见文件格式。

请注意,ZIP 是一种常见的容器格式。例如EPUB和OpenDocument文件实际上是具有特定内容的ZIP文件。我的版本file可以识别 OpenDocument 文件 - 但如果您的版本不能识别,则可能会说您的 OpenDocument 文件是 ZIP 文件。这可能不是您想要的结果:)。

迂腐地说,您可能并不是指“此文件是否已压缩”,例如 OpenDocument,甚至不是压缩为 PNG 或 JPEG 的图像。您可能的意思是“这个文件是存档吗”,例如 ZIP、unix tar 或单文件存档(例如 gzip)。

但通常情况下,您只需查看文件扩展名,就像在 Windows 上一样。就像.ZIP 表示ZIP 文件一样,.gz 表示gzip。在 Linux 上,您还可能会看到 .bz2 (bunzip2) 和 .xz (xz)。

答案4

您可以通过运行以下命令来确定文件是否看起来像压缩格式file命令。

file lorem.txt lorem.txt.gz
lorem.txt:    ASCII text
lorem.txt.gz: gzip compressed data, from Unix, last modified: Thu Feb  7 02:10:44 2013, max compression

file如果它无法识别格式,只会说“数据”。另外,由您决定哪些内容被压缩或未被压缩(例如,“ASCII 文本”、“PPM”、“WAVE 音频”是未压缩的;“gzip 压缩数据”、“JPEG 图像”、“Vorbis 音频”是压缩的) 。

检测文件是否被压缩的另一种方法是尝试对其进行压缩。如果无法显着减小文件大小,则该文件可能已被压缩或加密。

wc -c somefile
gzip <somefile | wc -c

相关内容