file
komutu, Unix ve Unix benzeri işletim sistemlerinde standart bir program'dır. Bir bilgisayar dosyası içinde bulunan veri türünü tanımak için kullanılır.
Geliştirici(ler) | AT&T Bell Laboratories |
---|---|
İlk yayınlanma | 1973 (Unix Research Version 4)'ün bir parçası olarak; 1986 açık kaynaklı yeniden uyarlama |
Güncel sürüm | 5.46 / 27 Kasım 2024 | )
Programlama dili | C |
İşletim sistemi | Unix, Unix-like, Plan 9, IBM i |
Platform | Cross-platform |
Tür | belirleyici |
Lisans | BSD lisansı, Plan 9: MIT Lisansı |
Resmî sitesi | darwinsys.com/file/ |
Kod deposu | github.com/file/file |
Tarihçe
file
'ın orijinal sürümü 1973'te (Unix Research Version 4)'te ortaya çıkmıştır.System V birkaç önemli değişiklikle birlikte büyük bir güncelleme getirdi, bunlardan en önemlisi de dosya türü bilgisini programın ikili dosyanın içine derlemek yerine harici bir metin dosyasına taşımaktı.
Çoğu büyük BSD ve Linux dağıtımları, komutun 1986-87 yıllarında tarafından sıfırdan yazılan bir özgür, açık kaynaklı yeniden uyarlamasını kullanır. 1989'da tarafından genişletildi ve o zamandan beri Guy Harris, Chris Lowth ve Eric Fischer dahil olmak üzere birçok kişiden girdi aldı; 1993'ün sonlarından itibaren bakımı tarafından organize edildi. OpenBSD sistemi sıfırdan yazılmış kendi alt küme uygulamasına sahiptir, ancak hala Darwin/Zoulas sihirli dosya formatlı bilgi koleksiyonunu (collection of magic-file) kullanmaktadır.
file
komutu, IBM i işletim sistemine de taşınmıştır.
Özellikler
(SUS - Single UNIX Specification), komut satırında belirtilen dosya üzerinde bir dizi sınama gerçekleştirileceğini belirtir:
- dosya okunamazsa veya belirlenemezse,
file
programı dosyanın işlendiğini ancak türünün belirlenemediğini belirtir. file
, dizin, , , blok ve karakter özel dosya türlerini belirleyebilmelidir.- sıfır uzunluktaki dosyalar böyle tanımlanır.
- dosyanın başlangıç kısmı ele alınır ve
file
pozisyon duyarlı testler kullanır. - tüm dosya ele alınır ve
file
bağlam duyarlı testler kullanır. - dosya bir
data
dosyası olarak tanımlanır.
file
'ın konuma duyarlı testleri normalde dosya içindeki çeşitli konumları oluşan metinsel bir veritabanıyla eşleştirerek uygulanır (Kullanım bölümüne bakın). Bu, dosya uzantıları ve MIME gibi şemaları kullanan diğer basit yöntemlerden farklıdır.
Çoğu uygulamada, file
komutu öncü baytların araştırılmasını sağlamak için bir veritabanı kullanır. Bu veritabanı, konumu genellikle /etc/magic
, /usr/share/file/magic
veya benzer bir konumda olan magic
adlı özel bir dosyada uygulanır.
Kullanım
SUS aşağıdaki seçenekleri zorunlu kılmaktadır:
- -M dosya, konuma duyarlı testleri içeren özel olarak biçimlendirilmiş bir dosya belirtin; varsayılan konuma duyarlı testler ve bağlama duyarlı testler gerçekleştirilmeyecektir
- -m dosya, -M için olduğu gibi, ancak varsayılan testler
file
içinde bulunan testlerden sonra gerçekleştirilecektir. - -d, verilen dosyaya varsayılan konuma duyarlı ve bağlama duyarlı testler gerçekleştirir; -M veya -m belirtilmediği sürece bu varsayılan davranıştır.
- -h, mevcut bir dosya veya dizine işaret eden referans vermeyin.
- -L, mevcut bir dosya veya dizine işaret eden sembolik bağlantıyı kaldırır.
- -i, dosyayı varolmayan, blok özel dosya, karakter özel dosya, dizin, , soket, sembolik bağlantı veya normal dosya olarak tanımlamaktan başka bir şekilde sınıflandırmaz. Linux ve BSD sistemleri bu seçenekle farklı davranır ve bunun yerine tanınan dosya biçimini tanımlayan bir ("MIME türü") çıktısı verir.
Diğer Unix ve Unix benzeri işletim sistemleri bunlara ek olarak -s 'özel dosyalar (special files)', -k 'devam et (keep-going)' veya -r 'ham (raw)' gibi seçenekler ekleyebilir (örnekler aşağıda).
Komut, dosyanın ne olduğunu değil, yalnızca "neye benzediğini" söyler ("file" içeriğe baktığı durumda). İçeriği eşleşmeyen bir dosyaya sihirli bir sayı koyarak programı kandırmak kolaydır. Bu nedenle komut, belirli durumlar dışında bir güvenlik aracı olarak kullanılamaz.
Örnekler
$ file file.c file.c: C program metni
$ file program program: 32-bit executable, Intel 80386, version 1 (), (uses (shared libs)),
$ file 1 /dev/hda1: (0/0)
$ file -s /dev/hda1 /dev/hda1: Linux/i386 ext2 dosya sistemi
-s seçeneğinin yalnızca bazı platformlarda bulunan ve file
'a aygıt dosyalarını okumasını ve bunları yalnızca aygıt dosyası olarak tanımlamak yerine içeriklerini tanımlamaya çalışmasını söyleyen standart olmayan bir seçenek olduğunu unutmayın. Normalde file
aygıt dosyalarını okumaya çalışmaz çünkü böyle bir dosyayı okumak, istenmeyen yan etkilere neden olabilir.
$ file -k -r libmagic-dev_5.35-4_armhf.deb # (Linux'ta) libmagic-dev_5.35-4_.deb: Debian binary package (format 2.0) - current archive - data
Standart olmayan -k seçeneği sayesinde, program bulunan ilk isabetten sonra durmaz, ancak diğer eşleşen kalıpları arar. Bazı sürümlerde mevcut olan -r seçeneği, yazdırılamayan karakterinin sekizli gösterimi yerine ham haliyle görüntülenmesine neden olur.
$ file compressed.gz compressed.gz: gzip compressed data, , original filename, `compressed', last modified: Thu Jan 26 14:08:23 2006, os: Unix
$ file -i compressed.gz # (on Linux) compressed.gz: ; (charset)=
$ file data.ppm data.ppm: "rawbits" image data
$ file /bin/cat /bin/cat: with 2 architectures /bin/cat (for architecture ppc7400):Mach-O executable ppc /bin/cat (for architecture i386):Mach-O executable i386
$ file /usr/bin/vi /usr/bin/vi: symbolic link to vim
tanımlanması, tüm platformlarda mevcut değildir ve -L parametresi kullanılırsa veya POSIXLY_CORRECT ayarlanırsa referans kaldırılır.
Libmagic kütüphanesi
file
'ın Ian Darwin/Christos Zoulas sürümünün 4.00 versiyonundan itibaren, file
'ın işlevselliği C (ve C uyumlu) bağlantı yoluyla erişilebilen bir libmagic
kütüphanesine dahil edilmiştir; file
bu kütüphane kullanılarak uygulanmaktadır.
Kaynakça
- ^ "[File] FIle 5.46 is now available". 27 Kasım 2024. Erişim tarihi: 28 Kasım 2024.
- ^ "Source of the UNIX V4 "file" man page". 10 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Mart 2022.
- ^ The early history of this program is recorded in its private CVS repository; see [1] 1 Nisan 2017 tarihinde Wayback Machine sitesinde arşivlendi. the log of the main program
- ^ "IBM System i Version 7.2 Programming Qshell" (PDF). IBM (İngilizce). 5 Mart 2021 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 5 Eylül 2020.
- ^ "The Open Group Base Specifications Issue 7 — file command". 12 Ekim 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Ağustos 2014.
- ^ Linux Kullanıcı komutları kılavuzu –
- ^ NetBSD General Commands –
- ^ Linux Programmer's – Library Functions –
- ^ NetBSD Library Functions –
- ^ Zoulas, Christos (27 Şubat 2003). "file-3.41 is now available" (E-posta). 4 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ocak 2013.
- ^ Zoulas, Christos (4 Mart 2003). "file-4.00 is now available" (E-posta). 28 Aralık 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ocak 2013.
Dış bağlantılar
- : determine file type – Commands & Utilities Reference, , Issue 7 from
- file mailing list 21 Şubat 2019 tarihinde Wayback Machine sitesinde arşivlendi.
- file releases 2 Haziran 2023 tarihinde Wayback Machine sitesinde arşivlendi.
Yardım dosyaları
- Plan 9 Programmer's Manual, Volume 1 –
- Linux Kullanıcı komutları kılavuzu –
- NetBSD Library Functions –
- Linux Library Functions kılavuzu –
- OpenBSD General Commands –
Konuyla ilgili yayınlar
- Fine Free File Command 20 Haziran 2023 tarihinde Wayback Machine sitesinde arşivlendi. – homepage for version of
file
used in major BSD and Linux distributions. - File for Windows 6 Haziran 2023 tarihinde Wayback Machine sitesinde arşivlendi. – webpage of native port of
file
for 32 bit Windows. - The libmagic-dev package 20 Haziran 2023 tarihinde Wayback Machine sitesinde arşivlendi. on packages.debian.org 9 Şubat 2006 tarihinde Wayback Machine sitesinde arşivlendi.
- TrID 12 Haziran 2023 tarihinde Wayback Machine sitesinde arşivlendi., an alternative providing ranked answers (instead of just one) based on statistics.
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
file komutu Unix ve Unix benzeri isletim sistemlerinde standart bir program dir Bir bilgisayar dosyasi icinde bulunan veri turunu tanimak icin kullanilir fileGelistirici ler AT amp T Bell LaboratoriesIlk yayinlanma1973 1973 Unix Research Version 4 un bir parcasi olarak 1986 1986 acik kaynakli yeniden uyarlamaGuncel surum5 46 27 Kasim 2024 31 gun once 27 Kasim 2024 Programlama diliCIsletim sistemiUnix Unix like Plan 9 IBM iPlatformCross platformTurbelirleyiciLisansBSD lisansi Plan 9 MIT LisansiResmi sitesidarwinsys com file Kod deposugithub com file fileTarihce file in orijinal surumu 1973 te Unix Research Version 4 te ortaya cikmistir System V birkac onemli degisiklikle birlikte buyuk bir guncelleme getirdi bunlardan en onemlisi de dosya turu bilgisini programin ikili dosyanin icine derlemek yerine harici bir metin dosyasina tasimakti Cogu buyuk BSD ve Linux dagitimlari komutun 1986 87 yillarinda tarafindan sifirdan yazilan bir ozgur acik kaynakli yeniden uyarlamasini kullanir 1989 da tarafindan genisletildi ve o zamandan beri Guy Harris Chris Lowth ve Eric Fischer dahil olmak uzere bircok kisiden girdi aldi 1993 un sonlarindan itibaren bakimi tarafindan organize edildi OpenBSD sistemi sifirdan yazilmis kendi alt kume uygulamasina sahiptir ancak hala Darwin Zoulas sihirli dosya formatli bilgi koleksiyonunu collection of magic file kullanmaktadir file komutu IBM i isletim sistemine de tasinmistir Ozellikler SUS Single UNIX Specification komut satirinda belirtilen dosya uzerinde bir dizi sinama gerceklestirilecegini belirtir dosya okunamazsa veya belirlenemezse file programi dosyanin islendigini ancak turunun belirlenemedigini belirtir file dizin blok ve karakter ozel dosya turlerini belirleyebilmelidir sifir uzunluktaki dosyalar boyle tanimlanir dosyanin baslangic kismi ele alinir ve file pozisyon duyarli testler kullanir tum dosya ele alinir ve file baglam duyarli testler kullanir dosya bir data dosyasi olarak tanimlanir file in konuma duyarli testleri normalde dosya icindeki cesitli konumlari olusan metinsel bir veritabaniyla eslestirerek uygulanir Kullanim bolumune bakin Bu dosya uzantilari ve MIME gibi semalari kullanan diger basit yontemlerden farklidir Cogu uygulamada file komutu oncu baytlarin arastirilmasini saglamak icin bir veritabani kullanir Bu veritabani konumu genellikle etc magic usr share file magic veya benzer bir konumda olan magic adli ozel bir dosyada uygulanir KullanimSUS asagidaki secenekleri zorunlu kilmaktadir M dosya konuma duyarli testleri iceren ozel olarak bicimlendirilmis bir dosya belirtin varsayilan konuma duyarli testler ve baglama duyarli testler gerceklestirilmeyecektir m dosya M icin oldugu gibi ancak varsayilan testler file icinde bulunan testlerden sonra gerceklestirilecektir d verilen dosyaya varsayilan konuma duyarli ve baglama duyarli testler gerceklestirir M veya m belirtilmedigi surece bu varsayilan davranistir h mevcut bir dosya veya dizine isaret eden referans vermeyin L mevcut bir dosya veya dizine isaret eden sembolik baglantiyi kaldirir i dosyayi varolmayan blok ozel dosya karakter ozel dosya dizin soket sembolik baglanti veya normal dosya olarak tanimlamaktan baska bir sekilde siniflandirmaz Linux ve BSD sistemleri bu secenekle farkli davranir ve bunun yerine taninan dosya bicimini tanimlayan bir MIME turu ciktisi verir Diger Unix ve Unix benzeri isletim sistemleri bunlara ek olarak s ozel dosyalar special files k devam et keep going veya r ham raw gibi secenekler ekleyebilir ornekler asagida Komut dosyanin ne oldugunu degil yalnizca neye benzedigini soyler file icerige baktigi durumda Icerigi eslesmeyen bir dosyaya sihirli bir sayi koyarak programi kandirmak kolaydir Bu nedenle komut belirli durumlar disinda bir guvenlik araci olarak kullanilamaz Ornekler file file c file c C program metni file program program 32 bit executable Intel 80386 version 1 uses shared libs file 1 dev hda1 0 0 file s dev hda1 dev hda1 Linux i386 ext2 dosya sistemi s seceneginin yalnizca bazi platformlarda bulunan ve file a aygit dosyalarini okumasini ve bunlari yalnizca aygit dosyasi olarak tanimlamak yerine iceriklerini tanimlamaya calismasini soyleyen standart olmayan bir secenek oldugunu unutmayin Normalde file aygit dosyalarini okumaya calismaz cunku boyle bir dosyayi okumak istenmeyen yan etkilere neden olabilir file k r libmagic dev 5 35 4 armhf deb Linux ta libmagic dev 5 35 4 deb Debian binary package format 2 0 current archive data Standart olmayan k secenegi sayesinde program bulunan ilk isabetten sonra durmaz ancak diger eslesen kaliplari arar Bazi surumlerde mevcut olan r secenegi yazdirilamayan karakterinin sekizli gosterimi yerine ham haliyle goruntulenmesine neden olur file compressed gz compressed gz gzip compressed data original filename compressed last modified Thu Jan 26 14 08 23 2006 os Unix file i compressed gz on Linux compressed gz charset file data ppm data ppm rawbits image data file bin cat bin cat with 2 architectures bin cat for architecture ppc7400 Mach O executable ppc bin cat for architecture i386 Mach O executable i386 file usr bin vi usr bin vi symbolic link to vim tanimlanmasi tum platformlarda mevcut degildir ve L parametresi kullanilirsa veya POSIXLY CORRECT ayarlanirsa referans kaldirilir Libmagic kutuphanesi file in Ian Darwin Christos Zoulas surumunun 4 00 versiyonundan itibaren file in islevselligi C ve C uyumlu baglanti yoluyla erisilebilen bir libmagic kutuphanesine dahil edilmistir file bu kutuphane kullanilarak uygulanmaktadir Kaynakca File FIle 5 46 is now available 27 Kasim 2024 Erisim tarihi 28 Kasim 2024 Source of the UNIX V4 file man page 10 Aralik 2019 tarihinde kaynagindan arsivlendi Erisim tarihi 13 Mart 2022 The early history of this program is recorded in its private CVS repository see 1 1 Nisan 2017 tarihinde Wayback Machine sitesinde arsivlendi the log of the main program IBM System i Version 7 2 Programming Qshell PDF IBM Ingilizce 5 Mart 2021 tarihinde kaynagindan arsivlendi PDF Erisim tarihi 5 Eylul 2020 The Open Group Base Specifications Issue 7 file command 12 Ekim 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 20 Agustos 2014 file 1 Linux Kullanici komutlari kilavuzu file 1 NetBSD General Commands libmagic 3 Linux Programmer s Library Functions libmagic 3 NetBSD Library Functions Zoulas Christos 27 Subat 2003 file 3 41 is now available E posta 4 Mart 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 1 Ocak 2013 Zoulas Christos 4 Mart 2003 file 4 00 is now available E posta 28 Aralik 2016 tarihinde kaynagindan arsivlendi Erisim tarihi 1 Ocak 2013 Dis baglantilarVikikitap Vikikitapta bu konu hakkinda daha fazla bilgi var Guide to Unix file determine file type Commands amp Utilities Reference Issue 7 from file mailing list 21 Subat 2019 tarihinde Wayback Machine sitesinde arsivlendi file releases 2 Haziran 2023 tarihinde Wayback Machine sitesinde arsivlendi Yardim dosyalari file 1 Plan 9 Programmer s Manual Volume 1 file 1 Linux Kullanici komutlari kilavuzu libmagic 3 NetBSD Library Functions libmagic 3 Linux Library Functions kilavuzu file 1 OpenBSD General CommandsKonuyla ilgili yayinlar Fine Free File Command 20 Haziran 2023 tarihinde Wayback Machine sitesinde arsivlendi homepage for version of file used in major BSD and Linux distributions File for Windows 6 Haziran 2023 tarihinde Wayback Machine sitesinde arsivlendi webpage of native port of file for 32 bit Windows The libmagic dev package 20 Haziran 2023 tarihinde Wayback Machine sitesinde arsivlendi on packages debian org 9 Subat 2006 tarihinde Wayback Machine sitesinde arsivlendi TrID 12 Haziran 2023 tarihinde Wayback Machine sitesinde arsivlendi an alternative providing ranked answers instead of just one based on statistics