Maybaygiare.org

Blog Network

bestand (1) – Linux man page

naam

bestand – bepaal bestandstype

Synopsis

bestand bestand …

bestand-C

bestand

beschrijving

deze hulppagina documenteert versie 5.04 van het bestand Commando.

bestand test elk argument in een poging om het te classificeren. Er zijn drie sets van tests, uitgevoerd in deze volgorde: bestandssysteem tests, magic tests, andlanguage tests. De eerste test die slaagt zorgt ervoor dat het bestandstype wordt afgedrukt.

het afgedrukte type bevat meestal een van de woorden tekst (het bestand bevat alleen afdrukkarakters en een paar gebruikelijke controlekarakters en is waarschijnlijk veilig om te lezen op een ASCII-terminal), uitvoerbaar (het bestand bevat het resultaat van het compileren van een programma in een vorm die begrijpelijk is voor sommige UNIXkernel of een ander), of gegevens die iets anders betekenen (gegevens zijn meestal ‘binair’ of niet-afdrukbaar). Uitzonderingen zijn bekende bestandsformaten (core bestanden, tararchives) waarvan bekend is dat ze binaire gegevens bevatten. Bij het wijzigen van magic bestanden of het programma zelf, zorg ervoor dat deze zoekwoorden te behouden. Gebruikers zijn afhankelijk van het weten dat alle leesbare bestanden in een map het Woord ’tekst’ hebben afgedrukt. Doe niet zoals Berkeley deed en verander ‘shell commands text’in’ shell script’.

De bestandssysteem tests zijn gebaseerd op het onderzoeken van de return van een stat(2) systeem aanroep. Het programma controleert of het bestand leeg is, of dat het een soort speciaal bestand is. Alle bekende bestandstypen die geschikt zijn voor het systeem waarop u draait (sockets, symbolic links, or named pipes (FIFOs) op die systemen die ze implement) zijn intuïtief als ze zijn gedefinieerd in het systeem header bestand

De magic tests worden gebruikt om te controleren op bestanden met gegevens in bepaalde vaste formaten. Het canonieke voorbeeld hiervan is een binair uitvoerbaar (gecompileerd programma) A.out bestand, waarvan de indeling is gedefinieerd in #include <a.out.h>
en mogelijk #include <exec.h>
in de standaard include directory. Deze bestanden hebben een’ magisch getal ‘ opgeslagen op een bepaalde plaats in de buurt van het begin van het bestand dat het Unix operatingsysteem vertelt dat het bestand een binair uitvoerbaar is, en welke van de verschillende types daarvan. Het concept van een ‘magic’ is toegepast door uitbreiding op Gegevensbestanden. Elk bestand met een invariante identifier op een kleine vaste offset in het bestand kan meestal op deze manier worden beschreven. De informatie die deze bestanden identificeert wordt gelezen uit het gecompileerde magic bestand / usr/share/misc / magic.mgc, of de bestanden in de directory / usr / share / misc / magic als het gecompileerde bestand niet bestaat. Bovendien, als $HOME/.Magic.mgc or $HOME/.magic bestaat, het zal worden gebruikt in de voorkeur aan het systeem magic bestanden. Als /etc/magic bestaat, zal het samen met andere magic bestanden gebruikt worden.

als een bestand niet overeenkomt met een van de items in het magic-bestand, wordt het onderzocht om te zien of het een tekstbestand lijkt te zijn. ASCII, ISO-8859-x, Non-ISO 8-bitextended-ASCII tekensets (zoals die gebruikt worden op Macintosh en IBM PC systemen), UTF-8-gecodeerde Unicode, UTF-16-gecodeerde Unicode, en EBCDIC tekensets kunnen worden onderscheiden door de verschillende bereiken en reeksen van bytes die afdrukbare tekst vormen in elke set. Als een bestand door een van deze tests, itscharacter set wordt gerapporteerd. ASCII -, ISO-8859-x -, UTF-8-en extended-ASCII-bestanden worden geïdentificeerd als’ tekst ‘ omdat ze meestal leesbaar zijn op bijna elk terminaal; UTF-16 en EBCDIC zijn slechts ‘karaktergegevens’ omdat, terwijl ze tekst bevatten, het tekst is die vertaling vereist voordat het kan worden gelezen. Bovendien zal het bestand proberen om andere kenmerken van tekst-type bestanden te bepalen. Als de regels van een bestand worden beëindigd door CR, CRLF of NEL, in plaats van de Unix-standaard LF, wordt dit gerapporteerd. Bestanden die ingesloten escape sequences of overbelasting bevatten zullen ook worden geïdentificeerd.

zodra het bestand de tekenset heeft bepaald die gebruikt wordt in een teksttype bestand, zal het proberen te bepalen in welke taal het bestand geschreven is. De taaltesten zoeken naar bepaalde strings (cf. #include <namen.h>
) die overal in de eerste blokken van een bestand kan verschijnen. Bijvoorbeeld,geeft keyword .br aan dat het bestand hoogstwaarschijnlijk een troff(1) invoerbestand is, net zoals het keyword struct een C programma aangeeft. Deze tests zijn minder betrouwbaar dan de vorige twee groepen, dus worden ze als laatste uitgevoerd. De languagetest routines ook testen voor sommige Varia(zoals tar (1) Archieven).

elk bestand dat niet geïdentificeerd kan worden als geschreven in een van de bovenstaande tekensets wordt simpelweg ‘data’genoemd.

opties

 -b, --brief

prepen geen bestandsnamen voor uitvoerlijnen (korte modus).

– C, — compile
Een magie schrijven.MGC-uitvoerbestand dat een voorgeparseerde versie van het magic-bestand of de map bevat.

– c, — checking-printout
Een controle afdrukken van de ontleed vorm van het magic-bestand veroorzaken. Dit wordt meestal gebruikt in combinatie met de-M-vlag om een nieuw magic-bestand te debuggen voordat het wordt geïnstalleerd.

-e, –exclude testname
De in testname genoemde test uitsluiten van de lijst met tests die zijn uitgevoerd om het bestandstype te bepalen. Geldige testnamen zijn:

apptype
EMX-toepassingstype (alleen op EMX).

tekst ‘ verschillende soorten tekstbestanden (deze test zal proberen de tekstcodering te raden, ongeacht de instelling van de optie ‘codering’).

codering
verschillende tekstcoderingen voor zachte magische tests.

tokens’ zoekt naar bekende tokens in tekstbestanden.

cdf ‘ drukt details van samengestelde documentbestanden af.

comprimeren
controleert op gecomprimeerde bestanden en kijkt erin.

elf ‘ drukt ELF-bestandsdetails af.

soft ‘ raadpleegt magische bestanden.

tar ‘ onderzoekt tar-bestanden.

– F, — separator separator
Gebruik de opgegeven tekenreeks als scheidingsteken tussen de bestandsnaam en het teruggekregen bestand resultaat. Standaard’:’.

– f, –files-from namefile
lees de namen van de te onderzoeken bestanden uit namefile (één per regel) voor de lijst met argumenten. Ofwel namefile ofwel ten minste één bestandsnaam moet aanwezig zijn; om de standaardinvoer te testen, gebruik je ‘-‘ als een bestandsnaam argument.

– h, — no-dereference
optie zorgt ervoor dat symlinks niet worden gevolgd (op systemen die symbolische koppelingen ondersteunen). Dit is de standaard als de omgevingsvariabele POSIXLY_CORRECT niet is gedefinieerd.

-i, –mime
zorgt ervoor dat het bestand Commando mime-type tekenreeksen uitvoert in plaats van de meer traditionele voor mensen leesbare tekenreeksen. Zo kan het zeggen ’text / plain; charset = us-ascii ‘in plaats van’ASCII text’. Om deze optie te laten werken, verandert het bestand de manier waarop het bestanden behandelt die door het commando zelf worden herkend (zoals veel van de tekstbestanden, mappen enz.), en maakt gebruik van een alternatief ‘magic’ bestand. (Zie de sectie bestanden hieronder).

–mime-type, — mime-encoding
zoals-i, maar alleen de opgegeven elementen afdrukken.

-L, — dereference
optie zorgt ervoor dat symlinks worden gevolgd, als de optie met dezelfde naam in ls(1) (op systemen die symbolische koppelingen ondersteunen). Dit is de standaard als de environmentvariable POSIXLY_CORRECT is gedefinieerd.

– m, — magic-file magicfiles
Geef een alternatieve lijst op van bestanden en mappen die magie bevatten. Dit kan een enkel item, of een dubbele punt gescheiden lijst. Als een gecompileerd magic-bestand wordt gevonden naast een bestand of map, zal het in plaats daarvan worden gebruikt.

– N, — no-pad
bestandsnamen niet opvragen zodat ze uitgelijnd worden in de uitvoer.

– n, — no-buffer
afdwingen dat stdout wordt doorgespoeld na het controleren van elk bestand. Dit is alleen nuttig bij het controleren van een lijst met bestanden. Het is bedoeld om te worden gebruikt door programma ‘ s die filetypeoutput van een pipe willen.

-p, — preserve-date
op systemen die utime(2) of utimes(2) ondersteunen, probeert u de toegangstijd van geanalyseerde bestanden te behouden, om te doen alsof dat bestand ze nooit gelezen heeft.

– r, — raw
Niet-afdrukbare tekens niet vertalen naar \ ooo. Normaal gesproken vertaalt bestand niet-afdrukbare tekens naar hun octale representatie.

– s, — special-files
normaal gesproken probeert een bestand alleen het type argument te lezen en te bepalen welke rapporten van stat(2) gewone bestanden zijn. Dit voorkomt problemen, want het lezen van speciale bestanden kunnen bijzondere gevolgen hebben. Het opgeven van de optie-s zorgt ervoor dat bestand ook argument bestanden die block orcharacter speciale bestanden te lezen. Dit is handig voor het bepalen van de bestandssysteem types van de data in raw disk partities, welke block speciale bestanden zijn. Deze optie zorgt er ook voor dat het bestand de bestandsgrootte negeert zoals gerapporteerd door stat(2), omdat het op sommige systemen een nulgrootte rapporteert voor raw-schijfpartities.

– v, –version
De versie van het programma afdrukken en afsluiten.

– z, — decompress
probeer in gecomprimeerde bestanden te kijken.

–help
Een help-bericht afdrukken en afsluiten.

bestanden

/usr/share/misc/magic.mgc

Default compiled list of magic.
/usr/share/misc / magic’ Map met standaard magic bestanden.

omgeving

de omgevingsvariabele MAGIC kan gebruikt worden om de standaard Magic bestandsnaam in te stellen. Als die variabele is ingesteld, zal het bestand niet proberen$HOME/te openen.Magic. bestand voegt”.mgc ‘ naar de waarde van deze variabele, indien van toepassing. De omgevingsvariabele POSIXLY_CORRECT bepaalt (op systemen die symbolische koppelingen ondersteunen) of het bestand symlinks probeert te volgen of niet. Indien ingesteld volgt het bestand een symbolische koppeling, anders niet. Dit wordt ook geregeld door de-L en-h opties.

zie ook

magic(5), strings(1), od(1), hexdump(1,) file(1posix)

Standards Conformance

Dit programma wordt verondersteld de System V Interface Definition of FILE(CMD) te overschrijden, zo dicht als men kan bepalen aan de hand van de vage taal erin.Het gedrag is meestal compatibel met het systeem V programma met dezelfde naam. Deze versie Weet meer magie, echter, dus het zal produceren verschillende (zij het meer accurate) output in veel gevallen.

Het enige significante verschil tussen deze versie en systeem V is dat deze versie elke witruimte als scheidingsteken behandelt, zodat spaties in patroonstrings moeten worden vermeden. Bijvoorbeeld,

>10 string language impress (imPRESS data)

in een bestaand magic bestand moet worden gewijzigd in

>10 string language\ impress (imPRESS data)

bovendien, in deze versie, als een patroon string een backslash bevat, moet deze worden escaped. Bijvoorbeeld

0 string \begindata Andrew Toolkit document

in een bestaand magic-bestand moet worden gewijzigd in

0 string \\begindata Andrew Toolkit document

SunOS releases 3.2 en later van Sun Microsystems bevatten een bestand Commando afgeleid van de System V one, maar met een aantal extensies. Mijn versie verschilt slechts op kleine manieren van die van de zon. Het bevat de extensie van de’ & ‘ operator, gebruikt als bijvoorbeeld

>16 long&0x7fffffff >0 not stripped

Magic Directory

De Magic file entries zijn verzameld uit verschillende bronnen, voornamelijk USENET, en bijgedragen door verschillende auteurs. Christos Zoulas (adres hieronder) zal aanvullende of gecorrigeerde magic File entries verzamelen. Een consolidatie van magic File entries zal periodiek worden verspreid.

De volgorde van de items in het magic-bestand is significant. Afhankelijk van welk systeem u gebruikt, kan de volgorde dat ze zijn samengesteld onjuist zijn. Als uw oude bestand commando een magic bestand gebruikt, houd het oude magic bestand rond voor vergelijkingsdoeleinden (hernoem het naar /usr/share/misc/magic.orig).

voorbeelden

$ file file.c file /dev/{wd0a,hda}file.c: C program textfile: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),

dynamisch gekoppeld (gebruikt gedeelde libs), gestript

/dev/wd0a: Block special (0/0)
/dev/hda: block special (3/0)

$ file-s/dev/wd0{b,d}
/ dev / wd0b: data
/ dev / wd0d: x86 boot sector

History

Er is een bestand commando in elke UNIX sinds tenminste Research versie 4 (man page gedateerd November 1973). De versie van System V introduceerde een belangrijke verandering: de externe lijst van magische types. Dit vertraagde het programma iets, maar maakte het een stuk flexibeler.

Dit programma, gebaseerd op de System V versie, is geschreven door Ian Darwin <[email protected]> zonder naar de broncode van iemand anders te kijken.

John Gilmore heeft de code uitgebreid herzien, waardoor het beter is dan de eerste versie. Geoff Collyer vond verschillende onvolkomenheden en leverde een aantal magische fileentries. Bijdragen van de”&’ operator door Rob McMahon, [email protected], 1989.

Guy Harris, [email protected], maakte veel veranderingen van 1993 tot heden.

primaire ontwikkeling en onderhoud van 1990 tot heden door Christos Zoulas ([email protected]).

gewijzigd door Chris Lowth, [email protected], 2000: Behandel de-i optie om MIME type strings uit te voeren, met behulp van een alternatief magic bestand en interne logica.

gewijzigd door Eric Fischer ([email protected]), juli 2000, om tekencodes te identificeren en te proberen de talen van niet-ASCII-bestanden te identificeren.

gewijzigd door Reuben Thomas ([email protected]), 2007 tot 2008, om MIME-ondersteuning te verbeteren en MIME-en niet-MIME-magie samen te voegen, ondersteuning voor mappen en bestanden vanmagic, veel bugfixes toepassen en het bouwsysteem verbeteren.

de lijst met bijdragers aan de’ magic ‘ directory (magic files) is te lang om hier op te nemen. Je weet wie je bent, dank je. Veel bijdragers worden vermeld in de bronbestanden.

juridische kennisgeving

Copyright © Ian F. Darwin, Toronto, Canada, 1986-1999. Gedekt door de standaard Berkeley Software distributie copyright; zie het bestand juridisch.Let op in the source distribution.

de bestanden tar.h en is_tar.c werden geschreven door John Gilmore van zijn publieke domein tar(1) programma, en zijn niet gedekt door de bovenstaande licentie.

Bugs

Er moet een betere manier zijn om de constructie van het Magic-bestand te automatiseren vanuit alle glop in Magdir. Wat is er?

bestand gebruikt verschillende algoritmen die snelheid boven nauwkeurigheid verkiezen, waardoor het kan worden misleid over de inhoud van tekstbestanden.

de ondersteuning voor tekstbestanden (voornamelijk voor programmeertalen) is simplistisch, inefficiënt en vereist hercompilatie om bij te werken.

de lijst met trefwoorden in ascmagic hoort waarschijnlijk thuis in het Magic-bestand. Dit kan worden gedaan met behulp van een trefwoord zoals ‘*’ voor de offset waarde.

klagen over conflicten in de Magic File entries. Maak een regel dat de magische items sorteren op basis van bestand offset in plaats van de positie binnen het magische bestand?

deze hulppagina, en in het bijzonder deze sectie, is te lang.

Return Code

bestand geeft 0 terug bij succes, en niet-nul bij fout.

als het bestand met de naam van de operand niet bestaat, niet kan worden gelezen, of het type bestand met de naam van de operand niet kan worden bepaald, wordt dit niet beschouwd als een fout die de afsluitstatus beïnvloedt.

beschikbaarheid

U kunt de laatste versie van de oorspronkelijke auteur verkrijgen via anonieme FTP op ftp.astron.com in de directory/pub/file / file-X. YZ.teer.gz

BSD 9 oktober 2008 BSD

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.