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:

Parametry příkazového řádku ze souboru
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

Individuální důkazy

  1. Vydání 5.39 . 15. června 2020 (zpřístupněno 15. června 2020).
  2. Soubor Open Source Project na Open Hub: Stránka jazyků . V: Otevřete rozbočovač . (zpřístupněno 17. července 2018).
  3. SOUBOR (1). In: Debian Manpages. Citováno 20. února 2021 .