Çoğu kişi bir dosyanın uzantısına bakar ve ardından bu uzantıdaki dosya türünü tahmin eder. Örneğin, gif, jpg, bmp veya png uzantılı bir dosya gördüğünüzde, bir görüntü dosyası düşünürsünüz ve bir zip uzantısı olan bir dosya gördüğünüzde, dosyanın bir sıkıştırılmış sıkıştırma yardımcı programı kullanılarak sıkıştırılmış olduğunu varsayalım.
Gerçekte bir dosya bir uzantıya sahip olabilir ancak tamamen farklı bir şey olabilir ve bir dosyada uzantı yoksa dosya türünü nasıl belirleyebilirsin?
Linux'ta, dosya komutunu kullanarak gerçek dosya türünü bulabilirsiniz.
Dosya Komutu Nasıl Çalışır?
Belgelere göre, dosya komutu bir dosyaya karşı üç set test çalıştırır:
- dosya sistemi testleri
- sihirli testler
- dil testleri
Geçerli bir yanıt döndüren ilk test kümesi dosya türünün yazdırılmasına neden olur.
Dosya sistemi testleri bir stat sistem çağrısından dönüşü inceler. Program, dosyanın boş olup olmadığını ve özel bir dosya olup olmadığını kontrol eder. Dosya türü sistem başlık dosyasında bulunursa, geçerli dosya tipi olarak iade edilir.
Sihirli sınamalar, dosya türünü ve özellikle dosya türünü belirlemeye yardımcı olan birkaç bayt içeriğini denetler. Dosya türü ile bir dosyayı eşleştirmek için kullanılan çeşitli dosyalar vardır ve bunlar / etc / magic, / usr / share / misc / magic.mgc, / usr / share / misc / magic dizinlerinde saklanır. Bu dosyaları, $ HOME / .magic.mgc veya $ HOME / .magic adlı ev klasörünüze bir dosya yerleştirerek geçersiz kılabilirsiniz.
Son testler dil sınavlarıdır. Dosya bir metin dosyası olup olmadığını kontrol edilir. Bir dosyanın ilk birkaç baytını test ederek, bir ASCII, UTF-8, UTF-16 veya dosyayı bir metin dosyası olarak belirleyen başka bir formatta olup olmadığını görebilirsiniz. Karakter kümesi çıkarıldıktan sonra dosya farklı dillere karşı test edilir. Örneğin, dosya ac programıdır.
Testlerin hiçbiri işe yaramazsa, çıktı sadece veridir.
Dosya Komutu Nasıl Kullanılır
Dosya komutu aşağıdaki gibi kullanılabilir:
dosya adı
Örneğin, file1 adında bir dosyanız olduğunu hayal edin, aşağıdaki komutu çalıştırın:
dosya dosyası1
Çıkış böyle bir şey olacak:
file1: PNG görüntü verileri, 640 x 341, 8 bit / renk RGB, titreşimsiz
Gösterilen çıktı, dosya1'in bir görüntü dosyası olduğunu veya daha kesin bir şekilde bir taşınabilir ağ grafiği (PNG) dosyası olduğunu belirler.
Farklı dosya türleri aşağıdaki gibi farklı sonuçlar üretir:
- ISO dosya türü - DOS / MBR önyükleme sektörü ISO 9660 CD-Rom dosya sistemi verileri 'etiket' (önyüklenebilir); bölüm 2: ID = 0xef, başlangıç-CHS (0x3ff, 254,63), uç-CHS (0x3ff, 4,63) başlatıcısı 1496, 4736 sektörler
- ODS dosya türü - OpenDocument E-Tablosu
- PDF dosya türü - PDF Belgesi, sürüm 1.4
- CSV dosya türü - CRLF satır göstergeleriyle çok uzun satırlarla ASCII metni
Dosya Komutundan Çıktının Özelleştirilmesi
Varsayılan olarak, dosya komutu dosya adını ve ardından dosyanın üzerindeki tüm ayrıntıları sağlar. Sadece dosya adı olmadan detayların tekrarlanmasını istiyorsanız, aşağıdaki anahtarı kullanın:
dosya -b dosyası1
Çıkış böyle bir şey olacak:
PNG görüntü verileri, 640 x 341, 8 bit / renkli RGB, titreşimsiz
Aynı zamanda dosya adı ile tür arasındaki sınırlayıcıyı da değiştirebilirsiniz.
Varsayılan olarak, sınırlayıcı bir kolondur (:) ancak bunu boru sembolü gibi istediğiniz herhangi bir şeye değiştirebilirsiniz:
dosya -F '|' dosya1
Çıktı şimdi böyle bir şey olacak:
dosya1 | PNG görüntü verileri, 640 x 341, 8 bit / renkli RGB, titreşimsiz
Birden Fazla Dosya İşleme
Varsayılan olarak, dosya komutunu tek bir dosyada kullanırsınız. Ancak, dosya komutu tarafından işlenecek dosyaların listesini içeren bir dosya adı belirtebilirsiniz:
Örnek olarak , nano düzenleyiciyi kullanarak test dosyaları adı verilen bir dosyayı açın ve bu satırları buna ekleyin:
- / Etc / passwd
- /etc/pam.d/
- / Etc / opt
Dosyayı kaydedin ve aşağıdaki dosya komutunu çalıştırın:
dosya -f test dosyaları
Çıkış böyle bir şey olacak:
/ etc / passwd: ASCII metni
/etc/pam.conf: ASCII metni
/ etc / opt: dizin
Sıkıştırılmış Dosyalar
Varsayılan olarak, sıkıştırılmış bir dosyaya karşı dosya komutunu çalıştırdığınızda, çıktıyı şöyle göreceksiniz:
file.zip: ZIP arşiv verileri, en az V2.0 ayıklamak
Bu, dosyanın bir arşiv dosyası olduğunu söylerken, dosyanın içeriğini gerçekten bilmezsiniz. Sıkıştırılmış dosya içindeki dosyaların dosya türlerini görmek için zip dosyasının içine bakabilirsiniz.
Aşağıdaki komut, bir ZIP dosyasındaki dosyalara karşı dosya komutunu çalıştırır:
dosya -z dosya adı
Çıkış şimdi arşivdeki dosya türlerini gösterecektir.
özet
Genel olarak, çoğu kişi basit bir dosya türünü bulmak için dosya komutunu kullanacak, ancak dosya komutunun aşağıdakileri terminal penceresine yazmasını sağlayacak tüm olasılıklar hakkında daha fazla bilgi edinecektir:
adam dosya