'Dosya' Linux Komutunu Kullanarak Bir Dosya Türü Belirleyin

Çoğu insan bakar bir dosyanın uzantısı ve sonra bu uzantıdaki dosyanın türünü tahmin edin. Örneğin, gif, jpg, bmp veya png uzantılı bir dosya gördüğünüzde, bir Görüntü dosyasızip uzantılı bir dosya gördüğünüzde, dosyanın bir dosya kullanılarak sıkıştırıldığını varsayıyorsunuz. zip sıkıştırma yardımcı programı.

Bir dosya bir uzantı kullanabilir, ancak tamamen farklı bir şey olabilir. Linux dosya uzantılarını kullanmaz; bunun yerine, dosyanın türü dosya adının bir parçasıdır. Gerçek dosya türünü bulmak için dosya emretmek.

Linux dosya komutu

'Dosya' Komutu Nasıl Çalışır?

file 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 grubu, yazdırılacak dosya türünü ister.

Dosya sistemi testleri, bir stat sistem çağrısından gelen 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 türü olarak döndürülür.

Sihirli testler, bir dosyanın içeriğini ve özellikle başlangıçta dosya türünü belirlemeye yardımcı olan birkaç baytı kontrol eder. Bir dosyayı dosya türüyle eşleştirmeye yardımcı olmak için çeşitli dosyalar kullanılır ve bunlar şurada depolanır:

  • /etc/magic
  • /usr/share/misc/magic.mgc
  • /usr/share/misc/magic

adlı ana klasörünüze bir dosya yerleştirerek bu dosyaları geçersiz kılın. $HOME/.magic.mgc veya $HOME/.sihir.

Son testler dil testleridir. Dosyanın bir metin dosyası olup olmadığı kontrol edilir. Test, bir dosyanın ilk birkaç baytını test ederek, dosyanın bir ASCII, UTF-8, UTF-16 veya dosyayı bir metin dosyası olarak tanımlayan başka bir format olup olmadığını tespit eder. Karakter seti çıkarıldığında, dosya farklı dillere karşı test edilir.

'dosya' Komutu Nasıl Kullanılır

NS dosya komut aşağıdaki formu alır:

dosya dosya adı. 

Örneğin, bir dosya başlığının türünü kontrol etmek için dokunmatik.svg, aşağıdaki komutu yürütün:

dosya touch.svg. 

Çıktı şöyle bir şeydir:

  • touch.svg: SVG Ölçeklenebilir Vektör Grafikleri resmi

Farklı dosya türleri farklı sonuçlar verir, örneğin:

  • ODS dosya türü: OpenDocument Elektronik Tablosu
  • PDF dosya türü: PDF Belgesi, sürüm 1.4
  • CSV dosya türü: Çok uzun satırlı ASCII metni, CRLF satır göstergeli

Birden Fazla Dosyayı Kullanma

Varsayılan olarak, dosya komutu tek bir dosyayla çalışır. Ancak, tarafından işlenecek dosyaların listesini içeren bir dosya adı belirtebilirsiniz. dosya emretmek.

Örneğin, adlı bir dosyayı açın test dosyaları kullanmak nano düzenleyici ve buna şu satırları ekleyin:

  • /etc/passwd
  • /etc/pam.conf
  • /etc/opt

Dosyayı kaydedin ve aşağıdaki dosya komutunu çalıştırın:

dosya -f test dosyaları. 

Çıktı şöyle bir şey olacaktır:

  • /etc/passwd: ASCII metni
  • /etc/pam.conf: ASCII metni
  • /etc/opt: dizin

Başka bir yöntem de çalıştırmaktır. dosya bir kez komut verin, ancak birkaç hedef belirtin. Örneğin:

/etc/passwd /etc/pam.conf /etc/opt dosyası

Çıktı şöyle bir şey olacaktır:

  • /etc/passwd: ASCII metni
  • /etc/pam.conf: ASCII metni
  • /etc/opt: dizin

Standart joker karakterler de çalışır. Örneğin, mevcut çalışma dizinindeki tüm dosyaları test etmek için şunu kullanın:

dosya *

D harfiyle başlayan (büyük/küçük harfe duyarlı) dizinleri test etmek için şunu deneyin:

dosyalanmış*

Sonuçlar, örneğin Masaüstü, Belgeler ve İndirilenler olabilir.

Sıkıştırılmış Dosyalar

çalıştırdığınızda dosya sıkıştırılmış bir dosyaya karşı komut çıktısını gördüğünüz gibi:

  • file.zip: ZIP arşiv verileri, çıkarmak için en az V2.0

Bu sonuç size dosyanın bir arşiv dosyası olduğunu söylese de dosyanın içeriğini bilmiyorsunuz. Sıkıştırılmış dosya içindeki dosyaların dosya türlerini görmek için zip dosyasının içine bakın. Aşağıdaki komut, dosya komutunu bir ZIP dosyası içindeki dosyalara karşı çalıştırır:

dosya -z dosya adı. 

Çıktı artık arşivdeki dosyaların dosya türlerini gösterir.