soubor
| soubor | |
|---|---|
| Základní data
| |
| Správce | Christos Zoulas |
| Aktuální verze |
5,39 ( 15. června 2020 ) |
| operační systém | Unixový systém |
| programovací jazyk | C. |
| kategorie | Nástroj příkazového řádku |
| Licence | 2-klauzule BSD licence |
| Německy mluvící | Ne |
| www.darwinsys.com/file/ | |
Soubor je unixový program pro čtení typ souboru UNIX formát souboru nebo typ MIME v souboru , stejně jako další informace o totéž. Může ukládat pouze ty typy souborů a typy MIME, které utratí správně známé podkladovému operačnímu systému.
Dějiny
První verze souboru pochází z roku 1973, Unix Research verze 4 . Systém V již obsahoval mnohem vylepšenou verzi souboru , protože od této verze již nebyly informace o typech souborů kompilovány přímo do souboru programu , ale čteny z externího textového souboru (soubor mime magic ) za běhu .
Dnešní běžné unixové deriváty, zejména BSD a Linux , používají bezplatný otevřený zdroj - Implementace , Ian Darwin byl přepsán. Tuto implementaci dále vyvinul Geoff Collyer v roce 1989 a od té doby obdržela různá vylepšení, mimo jiné od slavných hackerů s otevřeným zdrojovým kódem, jako jsou Guy Harris , Chris Lowth a Eric Fischer . Současným vedoucím je Christos Zoulas.
Specifikace
UNIX Specifikace Single (SUS) stanoví, že provádění programu souboru jasně definované série zkoušek s zadaný v souboru příkazového řádku je nutné provést za účelem zjištění jejich typu:
- pokud soubor nelze přečíst (například kvůli nedostatku práv k souboru nebo proto, že neexistuje), nelze určit jeho typ (nedefinováno). soubor hlásí , že soubor nelze přečíst.
-
soubor je založen na
stat()- systémové volání určuje, o jaký typ souboru se jedná. Kromě běžných souborů Unix má také adresáře , FIFO , sockety , blokovat soubory ( blok speciálních ) a znak soubory ( znak zvláštní ). - Prázdné soubory jsou identifikovány jako takové (například soubory vytvořené
touchbez obsahu nebo obvykle zamykající soubory ). - soubor načte v prvních bajtech nebo v celém souboru a pokusí se určit vzory specifické pro daný typ souboru, aby se tímto způsobem zjistil typ souboru.
- Pokud žádná z metod nevedla k určení typu souboru, bude soubor označován jako neznámý soubor (data) .
V současných implementacích souboru provádějí testy, které čtou části souboru, srovnání s textovou databází, která obsahuje magická čísla . Tím se odlišuje soubor od mnohem primitivnějších identifikátorů typu souboru, např. B. pomocí přípon souborů nebo specifikací typu MIME .
Ve většině implementacích soubor používá k databázi, proti které se porovnává prvních několik bajtů souboru. Tato databáze se obvykle používá v tzv. Magickém (file engl. , Magical) je uložen, který je obvykle v systému souborů pod /etc/magic, /usr/share/file/magicje uložen o. Ä .. Velikost tohoto souboru je obvykle rozhodující pro kvalitu testů souborů pro určení i exotických typů souborů.
použití
soubor , stejně jako většina unixových příkazů, lze použít téměř intuitivně. Hovor probíhá podle schématu
file [Optionen] Datei
Implementace souboru, který odpovídá specifikaci Single UNIX, musí být schopna zpracovat alespoň následující argumenty:
| parametr | význam |
|---|---|
‑M magicfile
|
Určete svůj vlastní „magický“ soubor, který se má použít k určení typu souboru. Obvykle prováděné testy jsou přeskočeny. |
‑m magicfile
|
Funguje stejně jako , kromě toho, že jsou provedeny i ostatní testy.
-M magicfile |
-h
|
Uveďte potenciální využití softlinků . |
-i
|
Klasifikuje soubor do jedné z následujících skupin: neexistuje, adresář , FIFO , zásuvka , blok speciální , znak zvláštní , symbolický odkaz , běžný soubor, prázdný soubor, nečitelný soubor, spustitelný , ar archiv , rozšířený formát cpio , rozšířený formát tar , shell skript , C programovací jazyk source , FORTRAN programovací jazyk zdroj , datový soubor |
Příklady
Následující příklady ukazují typický výstup souboru, když je program volán s různými typy souborů. Fiktivní názvy souborů by měly odpovídat vašemu vlastnímu typu souboru. Libra # označuje, že tato linie musí být zapsán v plášti .
# file file.c
file.c: C program text
# file program
program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked
(uses shared libs), stripped
# file /dev/wd0a
/dev/wd0a: block special (0/0)
# file -s /dev/hda1
/dev/hda1: Linux/i386 ext2 filesystem
# file -s /dev/hda5
/dev/hda5: Linux/i386 swap file
# file compressed.gz
compressed.gz: gzip compressed data, deflated, original filename, `compressed', last
modified: Thu Jan 26 14:08:23 2006, os: Unix
# file data.ppm
data.ppm: Netpbm PPM "rawbits" image data
Viz také
- binfmt misc : od A Linux - modul jádra , který jako soubor založený na prvních bajtů souborů ( čísla magie ) typy souborů se pokusí detekovat a rozpoznat programy a vykoná.
webové odkazy
-
file: určit typ souboru - Otevřít specifikaci základny skupiny - Volání funkce POSIX
stat() -
file(1)- OpenBSD General Commands Manual -
file(1)- Manuální stránka spustitelných souborů systému Debian GNU / Linux nebo příkazů prostředí -
Zdrojový kód z
file
Individuální důkazy
- ↑ Vydání 5.39 . 15. června 2020 (zpřístupněno 15. června 2020).
- ↑ Soubor Open Source Project na Open Hub: Stránka jazyků . V: Otevřete rozbočovač . (zpřístupněno 17. července 2018).
- ↑ SOUBOR (1). In: Debian Manpages. Citováno 20. února 2021 .