Název
soubor – určete typ souboru
Synopse
soubor souboru …
file-C
file
popis
tato příručka dokumentuje verzi 5.04 příkazu file.
soubor testuje každý argument ve snaze klasifikovat. V tomto pořadí jsou provedeny tři sady testů: testy souborového systému, magické testy ajazykové testy. První test, který uspěje, způsobí tisk typu souboru.
typ tištěné bude obvykle obsahovat jedno ze slov, text (soubor obsahuje pouze znaky tisku a několik společných kontrolních znaků a isprobably bezpečný číst na ASCII terminálu), spustitelný soubor (soubor obsahuje výsledek sestavování programu v podobě srozumitelné pro některé UNIXkernel nebo jiný), nebo údaje, což neznamená nic jiného (data jsou obvykle ‚binární‘ nebo non-printable). Výjimkou jsou známé formáty souborů (Základní soubory, tararchivy), o kterých je známo, že obsahují binární data. Při úpravě magických souborů nebo samotného programu nezapomeňte tato klíčová slova zachovat. Uživatelé jsou závislí na tom, že všechny čitelné soubory v adresáři mají slovo „text“ vytištěno. Nedělají jako Berkeley udělal a změnit ‚shell příkazy text‘ na ‚shell skript‘.
testy souborového systému jsou založeny na zkoumání návratu ze systémového volání stat (2). Program zkontroluje, zda je soubor prázdný, nebo zda je to nějaký druhspeciální soubor. Všechny známé typy souborů, vhodné do systému (zásuvky, symbolické odkazy, nebo pojmenované roury (Fifo) na těchto systémech thatimplement nich) jsou vytušil, pokud jsou definovány v systému záhlaví souboru
kouzelná testy se používají ke kontrole souborů s daty zejména pevných formátů. Kanonickým příkladem je binární spustitelný (kompilovaný program) soubor.out, jehož formát je definován v #include <a.out.h>
a případně # include < exec.h>
v adresáři standard include. Tyto soubory mají ‚magické číslo uložené v určitém místě v blízkosti začátku souboru, která říká UNIX operatingsystem, že soubor je binární spustitelný soubor, a který z několika typů této smlouvy. Koncept „magie“ byl aplikován rozšířením na datové soubory. Takto lze obvykle popsat libovolný soubor s nějakým invariantním identifikátorem při malém pevném posunu do souboru. Informace identifikující tyto soubory jsou čteny zkompilovaný magic file / usr/share/misc / magic.mgc nebo soubory v adresáři / usr/share / misc / magic, pokud kompilovaný soubor neexistuje. Kromě toho, pokud $domů/.kouzlo.mgc nebo $domů/.magie existuje, bude použita přednostně k systémovým magickým souborům. Pokud existuje/etc / magic, je tobude použit společně s dalšími magickými soubory.
Pokud soubor neodpovídá žádné položce v magickém souboru, zkoumá se, zda se zdá, že se jedná o textový soubor. ASCII, ISO-8859-x, non-ISO 8-bitextended-ASCII znakové sady (jako jsou ty používané na Macintosh a IBM PC systémů), kódované v UTF-8 Unicode, UTF-16 kódování Unicode, a EBCDIC znakové setscan být rozlišeny různé rozsahy a sekvence bajtů, které představují tisk textu v každé sadě. Pokud soubor projde některým z těchto testů, jehoje hlášena sada znaků. ASCII, ISO-8859-x, UTF-8 a extended-ASCII soubory jsou označeny jako ‚text‘, protože budou většinou čitelné na téměř anterminal; UTF-16 a EBCDIC jsou pouze znaková data, protože, zatímco oni obsahují text, to je text, který bude vyžadovat překlad, než to může být přečíst. Kromě toho se soubor pokusí určit další vlastnosti souborů textového typu. Pokud jsou řádky souboru ukončeny CR, CRLF nebo NEL, namísto unixového standardu LF, bude to hlášeno. Budou také identifikovány soubory, které obsahují vložené escape sekvence nebo overstriking.
jakmile soubor určí znakovou sadu použitou v textovém souboru, pokusí se určit, v jakém jazyce je soubor napsán. Jazykové testy hledají konkrétní řetězce (srov. #include <jména.h>
), které se mohou objevit kdekoli v prvních několika blocích souboru. Například klíčové slovo .br označuje, že soubor je s největší pravděpodobností troff(1) vstupní soubor,stejně jako klíčové slovo struct označuje C programu. Tyto testy jsou méně spolehlivé než předchozí dvě skupiny, takže jsou prováděny jako poslední. Rutiny languagetest také testují některé různé(například archivy tar (1)).
jakýkoli soubor, který nelze identifikovat jako zapsaný v žádné z výše uvedených znakových sad, se jednoduše říká, že je „data“.
Možnosti
-b, --brief
nepředkládejte názvy souborů na výstupní řádky (krátký režim).
– C, — compile
napište kouzlo.výstupní soubor mgc, který obsahuje předem analyzovanou verzi magického souboru nebo adresáře.
– c, –checking-print
způsobí kontrolní výtisk analyzované formy magického souboru. To se obvykle používá ve spojení s příznakem-m k ladění nového magického souboru před jeho instalací.
-e, –exclude název_testu
Vyloučit test jménem v název_testu ze seznamu testy provedené k určení typu souboru. Platné názvy testů jsou:
apptype
typ aplikace EMX (pouze na EMX).
text‘ různé typy textových souborů (tento test se pokusí odhadnout kódování textu, bez ohledu na nastavení volby „kódování“).
kódování
různé kódování textu pro měkké magické testy.
tokeny ‚ hledá známé tokeny uvnitř textových souborů.
cdf ‚ vytiskne podrobnosti o složených souborech dokumentů.
compress
kontroluje a hledá uvnitř komprimované soubory.
Elf ‚ vypíše podrobnosti o souboru ELF.
soft ‚ konzultuje magické soubory.
tar ‚ zkoumá soubory tar.
– F, — separator separator
použijte zadaný řetězec jako oddělovač mezi názvem souboru a vráceným výsledkem souboru. Výchozí hodnota je ‚:‘.
– f, –files-from namefile
Přečtěte si názvy souborů, které mají být zkoumány z namefile (jeden na řádek) před seznamem argumentů. Musí být přítomen buď namefile nebo alespoň jeden filenameargument; pro testování standardního vstupu použijte ‚-‚ jako argument názvu souboru.
-h, — no-dereference
volba způsobí, že symbolické odkazy nebudou dodržovány (na systémech, které podporují symbolické odkazy). Toto je výchozí hodnota, pokud proměnná prostředí POSIXLY_CORRECT není definována.
– i, –mime
způsobí, že příkaz souboru vypíše řetězce mime typu spíše než tradiční čitelné. Tak to může říkat ‚text/plain; charset=us-ascii ‚ratherthan‘ ASCII text‘. Aby tato volba fungovala, soubor změní způsob, jakým zpracovává soubory rozpoznané samotným příkazem (například mnoho textových typů souborů, adresářů atd.) (Viz část Soubory, níže).
–mime-type, –mime-encoding
Like-i, ale vypíše pouze zadané elementy.
– l, –dereference
volba způsobí, že budou následovat symbolické odkazy jako podobně pojmenovaná volba v ls (1) (na systémech, které podporují symbolické odkazy). Toto je výchozí hodnota, pokud je definována proměnná prostředí POSIXLY_CORRECT.
– m, –magic-file magicfiles
určuje alternativní seznam souborů a adresářů obsahujících magii. Může to být jedna položka nebo seznam oddělený dvojtečkou. Pokud je nalezen kompilovaný magický souborpodpora souboru nebo adresáře, bude místo toho použit.
– N, –no-pad
nevystavujte názvy souborů tak, aby se zarovnaly ve výstupu.
-n, –no-buffer
vynutit vyprázdnění stdout po kontrole každého souboru. To je užitečné pouze při kontrole seznamu souborů. Je určen k použití programy, které chtějí filetypeoutput z potrubí.
-p, –preserve-datum
Na systémy, které podporují utime(2) nebo utimes(2), pokus zachovat čas přístupu souborů, analyzovat, předstírat, že soubor je nikdy nečtu.
– r, — raw
nepřekládejte netisknutelné znaky do \ooo. Normálně soubor překládá netisknutelné znaky do jejich osmičkové reprezentace.
-s, –special-files
normálně se soubor pokouší číst a určit typ souborů argumentů, které jsou běžné soubory. Tím se zabrání problémům, protožečtení speciálních souborů může mít zvláštní důsledky. Zadání volby-s způsobí, že soubor bude také číst soubory argumentů, které jsou speciální soubory block orcharacter. To je užitečné pro určení typů souborového systému dat v diskových oddílech raw, které jsou blokovány speciálními soubory. Tato volba také způsobí, že soubor ignoruje Velikost souboru, jak uvádí stat (2), protože v některých systémech hlásí nulovou velikost diskových oddílů raw.
– v, –version
vytiskne verzi programu a ukončí.
– z, –uncompress
zkuste se podívat do komprimovaných souborů.
–help
vytiskne zprávu nápovědy a ukončí ji.
soubory
/usr/share/misc/magic.mgc
výchozí kompilovaný seznam kouzel.
/usr/share / misc / magic‘ adresář obsahující výchozí magické soubory.
prostředí
proměnnou prostředí MAGIC lze použít k nastavení výchozího názvu souboru magic. Pokud je tato proměnná nastavena, soubor se nepokusí otevřít$HOME/.kouzlo. soubor přidává ‚.mgc “ k hodnotě této proměnné podle potřeby. Proměnná prostředí POSIXLY_CORRECT řídí (na systémech, které podporují symbolické odkazy), zda se soubor pokusí sledovat symbolické odkazy nebo ne. Pokud je nastaven, pak soubor následuje symlink, jinak tomu tak není. To je také řízeno možnostmi-L A-h.
Viz Také
magic(5), struny(1), od(1), hexdump(1,) soubor(1posix)
Shoda se Standardy
Tento program je věřil překročit System V Interface Definition SOUBOR(CMD), tak blízko, jak lze zjistit z nejasné formulace v něm obsažené.Jeho chování je většinou kompatibilní se stejnojmenným programem System V. Tato verze však ví více kouzel, takže bude v mnoha případech produkovat jiný (i když přesnější) výstup.
jeden významný rozdíl mezi touto verzi a System V, je, že tato verze léčí nějaké mezery jako oddělovač, tak, že mezery v patternstrings musí být unikl. Například,
>10 string language impress (imPRESS data)
v existující kouzlo soubor by měl být změněn na
>10 string language\ impress (imPRESS data)
kromě toho, v této verzi, pokud vzor řetězec obsahuje zpětné lomítko, musí být unikl. Například
0 string \begindata Andrew Toolkit document
v existující kouzlo soubor by měl být změněn na
0 string \\begindata Andrew Toolkit document
SunOS zprávy 3.2 a později od Sun Microsystems obsahují příkaz souboru odvozený od systému V one, ale s některými příponami. Moje verze se od Sun liší jen drobnými způsoby. To zahrnuje rozšíření ‚&‘ operátor, používá se jako, například
>16 long&0x7fffffff >0 not stripped
Kouzlo Adresář
kouzelná položky souboru byly shromážděny z různých zdrojů, především USENET, a přispěl různých autorů. Christos Zoulas (adresa níže) budesbírat další nebo opravené položky magického souboru. Konsolidace položek magických souborů bude pravidelně distribuována.
pořadí záznamů v magickém souboru je významné. V závislosti na tom, jaký systém používáte, může být pořadí, které jsou sestaveny, nesprávné. Ifyour old file příkaz používá magický soubor, udržet starý soubor magic kolem pro účely srovnání (přejmenujte jej na /usr/share / různé / magie.pův).
Příklady
$ file file.c file /dev/{wd0a,hda}file.c: C program textfile: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), stripped
/dev/wd0a: blok speciální (0/0)
/dev/hda: blok speciální (3/0)
$ file-s /dev/wd0{b,d}
/dev/wd0b: data
/dev/wd0d: x86 boot sector
History
v každém Unixu existuje příkaz souboru alespoň od verze 4 (man page z listopadu 1973). Verze System V představila jednuvýznamná hlavní změna: externí seznam magických typů. To mírně zpomalilo program, ale učinilo ho mnohem flexibilnějším.
Tento program, založené na Systému V verze, napsal Ian Darwin <[email protected]> aniž by se na kohokoliv jiného zdrojového kódu.
John Gilmore rozsáhle revidoval kód, takže je lepší než první verze. Geoff Collyer našel několik nedostatků a poskytl nějaké magické fileentries. Příspěvky‘ & ‚ operátorem Rob McMahon, [email protected], 1989.
Guy Harris, [email protected], provedl mnoho změn od roku 1993 do současnosti.
Primární vývoj a údržba od roku 1990 do současnosti Christos Zoulas ([email protected]).
Změněn Chris Lowth, [email protected], 2000: Zvládněte volbu-i pro výstup řetězců typu mime pomocí alternativního magického souboru a interní logiky.
Změněn Eric Fischer ([email protected]), červenec, 2000, identifikovat kódy znaků a pokusit se o identifikaci jazyků non-ASCII soubory.
Změněn Reuben Thomas ([email protected]), 2007-2008, s cílem zlepšit MIME podporu a sloučit MIME a non-MIME magie, podpora adresářů, stejně jako soubory ofmagic, použít mnoho opravy chyb a zlepšení build systém.
seznam přispěvatelů do adresáře „magic“ (magic files) je příliš dlouhý na to, aby sem byl zahrnut. Víte, kdo jste; děkuji. Mnoho přispěvatelů je uvedenove zdrojových souborech.
Právní upozornění
Copyright © Ian F. Darwin, Toronto, Kanada, 1986-1999. Vztahuje se na standardní Berkeley Software Distribution copyright; viz soubor právní.Oznámení v distribuci zdrojů.
soubory tar.h a is_tar.c byly napsány John Gilmore z jeho public-domain tar (1) Programu, a nejsou zahrnuty výše uvedené licence.
chyby
musí existovat lepší způsob, jak automatizovat konstrukci magického souboru ze všech glopů v Magdiru. Co je to?
soubor používá několik algoritmů, které upřednostňují rychlost před přesností, a tak může být uveden v omyl o obsahu textových souborů.
podpora textových souborů (především pro programovací jazyky) je zjednodušující, neefektivní a vyžaduje aktualizaci rekompilace.
seznam klíčových slov v ascmagic pravděpodobně patří do magického souboru. To lze provést pomocí nějakého klíčového slova jako ‚ * ‚ pro hodnotu offsetu.
si stěžují na konflikty v položkách magického souboru. Udělejte pravidlo, že položky magic seřadí na základě posunu souboru spíše než pozice v magickém souboru?
tato příručka, a zejména tato část, je příliš dlouhá.
návratový kód
soubor vrací 0 při úspěchu a nenulový při chybě.
Pokud se soubor pojmenovaný soubor operand neexistuje, nelze číst, nebo typ souboru, pojmenovaný soubor operand nemůže být určena, to není beconsidered chybu, která má vliv na výstupní stav.
dostupnost
nejnovější verzi původního autora můžete získat anonymním FTP na ftp.astron.com v adresáři / pub/file / file-X.YZ.dehet.gz
BSD 9. října 2008 BSD