Linux'ta belirli bir dosyanın sıkıştırılıp sıkıştırılmadığını bir komut kullanarak nasıl öğrenebilirim?
Linux'ta belirli bir dosyanın sıkıştırılıp sıkıştırılmadığını bir komut kullanarak nasıl öğrenebilirim?
Yanıtlar:
file
Üzerinde komutu çalıştırın . Sıkıştırılmış dosyaları ve diğer yaygın dosya biçimlerini tanımlayacaktır.
ZIP kodunun yaygın bir kapsayıcı biçimi olduğuna dikkat edin. Örneğin, EPUB ve OpenDocument dosyaları aslında belirli içeriğe sahip ZIP dosyalarıdır. Benim file
sürümüm OpenDocument dosyalarını tanır - ancak sizinkine sahip değilse OpenDocument dosyanızın bir ZIP dosyası olduğunu söyleyebilir. Bu aklınızdaki sonuç olmayabilir :).
Bilgiçlikçi olmak için, muhtemelen bir OpenDocument gibi "bu dosya sıkıştırılmış mı?", Hatta PNG veya JPEG olarak sıkıştırılmış bir görüntü anlamına gelmez. Muhtemelen ZIP, unix tar gibi "bu dosya bir arşivdir" veya gzip gibi tek dosyalı bir arşivdir.
Ancak genellikle, Windows'ta olduğu gibi dosya uzantısına bakarsınız. .ZIP, ZIP dosyası, .gz ise gzip anlamına gelir. Linux'ta da .bz2 (bunzip2) ve .xz (xz) değerlerini göreceksiniz.
file
Komutu çalıştırarak bir dosyanın sıkıştırılmış biçime benzip benzemediğini belirleyebilirsiniz .
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
biçimi tanımıyorsa yalnızca "veri" diyecek. Ayrıca neyin sıkıştırıldığını veya neyin sıkıştırılmadığını bulmak size kalmıştır (örn. “ASCII metin”, “PPM”, “WAVE ses” sıkıştırılmamıştır; “gzip sıkıştırılmış veriler”, “JPEG görüntüsü”, “Vorbis ses” sıkıştırılmıştır) .
Bir dosyanın sıkıştırılmış görünüp görünmediğini tespit etmenin başka bir yolu da sıkıştırmaya çalışmaktır. Boyutu önemli ölçüde azaltamazsanız, dosya muhtemelen sıkıştırılmış veya şifrelenmiştir.
wc -c somefile
gzip <somefile | wc -c
bash dilinde
if (file yourTestFile | grep -q commpressed ) ; then
echo "Yes, yourTestFile is compressed"
fi