确定是否压缩了特定文件


15

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


6
定义“压缩”。您的定义是否压缩了ogg,mp3,gz,zip,xz,rar,7z,bz2,upx压缩的可执行文件,deb,rpm文件?
斯特凡Chazelas

Answers:


18

您可以尝试使用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

如果文件是压缩文件的符号链接,此方法是否有效?
bli

@bli不,至少不在我的Ubuntu上。
Leonid

2

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)。


1

您可以通过运行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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.