在 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