Maybaygiare.org

Blog Network

fil(1) – side

navn

fil – bestem filtype

Synopsis

filfil …

file-c

file

Description

denne manual side dokumenterer version 5.04 af filkommandoen.

fil tester hvert argument i et forsøg på at klassificere det. Der er tre sæt tests, udført i denne rækkefølge: filsystemtest, magiske tests og sprogtest. Den første test, der lykkes, får filtypen til at blive udskrevet.

den type, der udskrives, indeholder normalt et af ordene tekst (filen indeholder kun udskrivningstegn og et par almindelige kontroltegn og er sandsynligvis sikkert at læse på en ASCII-terminal), eksekverbar (filen indeholder resultatet af at kompilere et program i en form, der er forståelig for en unik eller en anden) eller data, der betyder noget andet (data er normalt ‘binær’ eller ikke-udskrivbar). Undtagelser er velkendte filformater (kernefiler, tararchives), der vides at indeholde binære data. Når du ændrer magiske filer eller selve programmet, skal du sørge for at bevare disse nøgleord. Brugere er afhængige afved, at alle læsbare filer i en mappe har ordet ‘tekst’ trykt. Gør ikke som Berkeley gjorde og ændre ‘shell kommandoer tekst’ til ‘shell script’.

filsystemtestene er baseret på at undersøge afkastet fra et stat(2) systemopkald. Programmet kontrollerer, om filen er tom, eller om det er en slagsspeciel fil. Alle kendte filtyper, der passer til det system, du kører på (stikkontakter, symbolske links eller navngivne rør (FIFOs) på disse systemer thatimplement dem) intuiteres, hvis de er defineret i systemhovedfilen

de magiske tests bruges til at kontrollere for filer med data i bestemte faste formater. Det kanoniske eksempel på dette er en binær eksekverbar (kompileret program)A.out-fil, hvis format er defineret i #include <a.out.h >
og muligvis #Inkluder < udførelse.h>
i standard inkluderer mappe. Disse filer har et’ magisk nummer ‘ gemt på et bestemt sted nær begyndelsen af filen, der fortæller det unikke operationssystem, at filen er en binær eksekverbar, og hvilken af flere typer deraf. Begrebet ‘magi’ er blevet anvendt i forlængelse af datafiler. Enhver fil med en eller anden invariant identifikator ved en lille fast forskydning i filen kan normalt beskrives på denne måde. Oplysningerne, der identificerer disse filer, læses fraden kompilerede magiske fil / usr/share/misc / magic.MGC, eller filerne i mappen /usr/share/misc/magic, hvis den kompilerede fil ikke findes. I tillæg, hvis $hjem/.Magic.mgc eller $hjem/.magic eksisterer, vil det blive brugt frem for systemet magiske filer. Hvis/etc / magic eksisterer, er detvil blive brugt sammen med andre magiske filer.

hvis en fil ikke matcher nogen af posterne i den magiske fil, undersøges den for at se, om den ser ud til at være en tekstfil. ASCII, ISO-8859, ikke-ISO 8-bitudvidede ASCII tegnsæt (såsom dem, der bruges på Macintosh og IBM PC-systemer), UTF-8-kodet Unicode, UTF-16-kodet Unicode og EBCDIC tegnsætkan skelnes ved de forskellige intervaller og sekvenser af byte, der udgør udskrivbar tekst i hvert sæt. Hvis en fil består nogen af disse tests, er denskaraktersæt rapporteres. ASCII, ISO-8859, UTF-8 og udvidet-ASCII-filer identificeres som ‘tekst’, fordi de for det meste kan læses på næsten anyterminal; UTF – 16 og EBCDIC er kun ‘tegndata’, fordi mens de indeholder tekst, er det tekst, der kræver oversættelse, før den kan læses. Derudover vil filen forsøge at bestemme andre egenskaber ved teksttypefiler. Hvis linjerne i en fil afsluttes af CR, CRLF eller NEL, i stedet for den unikke standard LF, vil dette blive rapporteret. Filer, der indeholder indlejrede escape sekvenser eller overstriking vil også blive identificeret.

Når filen har bestemt det tegnsæt, der bruges i en teksttypefil, vil den forsøge at bestemme på hvilket sprog filen er skrevet. Sprogtestene ser efter bestemte strenge (jf. # Inkluder<navne.h >
), der kan vises hvor som helst i de første par blokke af en fil. For eksempel angiver nøgleordet .br,at filen sandsynligvis er en troff(1) inputfil, ligesom nøgleordet struct angiver et C-program. Disse tests er mindre pålidelige end de to foregående grupper, så de udføres sidst. De languagetest rutiner også teste for nogle diverse (såsom tjære(1) arkiver).

enhver fil, der ikke kan identificeres som skrevet i nogen af de tegnsæt, der er anført ovenfor, siges simpelthen at være ‘data’.

valg

 -b, --brief

Forbered ikke filnavne til outputlinjer (kort tilstand).

-C, –compile
Skriv en magi.MGC output fil, der indeholder en pre-parsed version af den magiske fil eller mappe.

-c, –kontrol-udskrift
forårsage en kontrol udskrift af den parsede form af den magiske fil. Dette bruges normalt sammen med-M-flaget til at debugge en ny magisk fil førinstallation af den.

-e, –ekskluder testnavn
Ekskluder testen, Der er navngivet i testnavn, fra listen over tests, der er foretaget for at bestemme filtypen. Gyldige testnavne er:

apptype
EMS-applikationstype (kun på EMS).

tekst ‘ forskellige typer tekstfiler (denne test vil forsøge at gætte tekstkodningen, uanset indstillingen af ‘kodning’).

kodning
Forskellige tekstkodninger til bløde magiske tests.

tokens’ ser efter kendte tokens inde i tekstfiler.

cdf’ udskriver oplysninger om sammensatte dokumentfiler.

Komprimer
kontrollerer og ser inde i komprimerede filer.

elf ‘ udskriver ELF filoplysninger.

soft ‘ konsulterer magiske filer.

tar ‘ undersøger tar-filer.

-f, –separator separator
Brug den angivne streng som separator mellem filnavnet og det returnerede filresultat. Som standard’:’.

-f, –files-from namefile
Læs navnene på de filer, der skal undersøges fra namefile (en pr.linje) før argumentlisten. Enten namefile eller mindst et filenameargument skal være til stede; for at teste standardindgangen skal du bruge ‘-‘ som et filnavnsargument.

-h, –no-dereference
valgmulighed får symlinks til ikke at blive fulgt (på systemer, der understøtter symbolske links). Dette er standardindstillingen, hvis miljøvariablen POSISK_KORREKT ikke er defineret.

-i, –mime
Får filkommandoen til at udsende MIME-strenge snarere end de mere traditionelle menneskelige læsbare. Således kan det sige ‘tekst / almindelig; charset=us-ascii’ ratherthan ‘ASCII tekst’. For at denne mulighed skal fungere, ændrer filen den måde, den håndterer filer, der genkendes af selve kommandoen (såsom mange af tekstfiltyperne, mapper osv.), og bruger en alternativ ‘magisk’ fil. (Se afsnittet Filer nedenfor).

–mime-type, –mime-kodning
Like-I, men Udskriv kun det / de angivne element(er).

-l, –dereference
valgmulighed får symlinks til at blive fulgt, som den lignende navngivne mulighed i ls(1) (på systemer, der understøtter symbolske links). Dette er standard, hvis miljøvariabel POSISK_KORREKT er defineret.

-m, –magic-file magicfiles
Angiv en alternativ liste over filer og mapper, der indeholder magi. Dette kan være et enkelt element eller en kolon-adskilt liste. Hvis der findes en kompileret magisk fillongside en fil eller mappe, vil den blive brugt i stedet.

-N, –no-pad
Indsæt ikke filnavne, så de justeres i output.

-n, –no-buffer
Tving stdout til at blive skyllet efter kontrol af hver fil. Dette er kun nyttigt, hvis du kontrollerer en liste over filer. Det er beregnet til at blive brugt af programmer, der ønsker filetypeoutput fra et rør.

-p, –preserve-date
på systemer, der understøtter utime(2) eller utimes(2), skal du forsøge at bevare adgangstiden for analyserede filer for at foregive, at filen aldrig læser dem.

-r, –rå
Oversæt ikke udskrivbare tegn til \OOO. Normalt fil oversætter udskrivbare tegn til deres oktal repræsentation.

-s, –special-files
normalt forsøger fil kun at læse og bestemme typen af argumentfiler, som stat(2) rapporter er almindelige filer. Dette forhindrer problemer, fordilæsning af specielle filer kan have særlige konsekvenser. Angivelse af-S mulighed får fil til også at læse argument filer, som er blok orcharacter særlige filer. Dette er nyttigt til bestemmelse af filsystemtyperne af dataene i rå diskpartitioner, som er blokspecielle filer. Denne mulighed får også filen til at se bort fra filstørrelsen som rapporteret af stat(2), da den på nogle systemer rapporterer en nulstørrelse for rå diskpartitioner.

-v, –version
Udskriv versionen af programmet og afslut.

-å, –uncompress
Prøv at kigge inde komprimerede filer.

–help
Udskriv en hjælpemeddelelse og afslut.

filer

/usr/share/misc/magic.mgc

standard kompileret liste over magi.
/usr/share/misc/magic’ mappe, der indeholder standard magiske filer.

miljø

miljøvariablen MAGIC kan bruges til at indstille standard magic-filnavnet. Hvis denne variabel er indstillet, vil filen ikke forsøge at åbne$HOME/.Magic. filen tilføjer ‘.MGC ‘ til værdien af denne variabel, alt efter hvad der er relevant. Miljøvariablen POSISK_KORREKT kontrol (på systemer, der understøtter symbolske links), om filen vil forsøge at følge symlinks eller ej. Hvis den er indstillet, følger filen symlink, ellers gør den det ikke. Dette styres også af indstillingerne-L og-h.

Se også

magic (5), strings(1), od(1), fil(1) fil(1)

standarder overensstemmelse

dette program menes at overstige System V Interface Definition af fil(CMD), så tæt som man kan bestemme ud fra det vage sprog indeholdt deri.Dens adfærd er for det meste kompatibel med System V-programmet med samme navn. Denne version kender mere magi, men så det vil producere forskellige (omend merenøjagtig) output i mange tilfælde.

den ene væsentlige forskel mellem denne version og System V er, at denne version behandler ethvert hvidt rum som en afgrænser, så mellemrum i patternstrings skal undslippes. For eksempel

>10 string language impress (imPRESS data)

i en eksisterende magisk fil skulle ændres til

>10 string language\ impress (imPRESS data)

desuden skal den i denne version, hvis en mønsterstreng indeholder en backslash, undslippes. For eksempel

0 string \begindata Andrew Toolkit document

i en eksisterende magisk fil skulle ændres til

0 string \\begindata Andrew Toolkit document

SunOS udgivelser 3.2 og senere fra Sun Microsystems inkluderer en filkommando afledt af systemet V en, men med nogle udvidelser. Min version adskiller sig fra solens kun på mindre måder. Det inkluderer udvidelsen af ‘&’ operatør, der bruges som for eksempel

>16 long&0x7fffffff >0 not stripped

Magic Directory

magic file-posterne er indsamlet fra forskellige kilder, hovedsageligt USENET, og bidraget af forskellige forfattere. Christos Soulas (adresse nedenfor) vilindsamle yderligere eller korrigerede magiske filposter. En konsolidering af magic file poster vil blive distribueret med jævne mellemrum.

rækkefølgen af poster i den magiske fil er signifikant. Afhængigt af hvilket system du bruger, kan den rækkefølge, de er sat sammen, være forkert. Hvis din gamle filkommando bruger en magisk fil, skal du holde den gamle magiske fil rundt til sammenligningsformål (omdøb den til /usr/share/misc/magic.orig).

eksempler

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

dynamisk forbundet (bruger delte libs), strippet

/dev/vd0a: Bloker speciel (0/0)
/dev/hda: Bloker speciel (3/0)

$ file-s /dev/vd0{B, d}
/ dev / vd0b: data
/ dev / vd0d: H86 boot sektor

historie

der har været en fil kommando i hver enhed siden mindst Research Version 4 (man side dateret November, 1973). System V-versionen introducerede envæsentlig større ændring: den eksterne liste over magiske typer. Dette bremsede programmet lidt ned, men gjorde det meget mere fleksibelt.

dette program, baseret på System V-versionen, blev skrevet af Ian Darvin <[email protected]> uden at se på andres kildekode.John Gilmore reviderede koden grundigt, hvilket gjorde den bedre end den første version. Geoff Collyer fundet flere mangler og forudsat nogle magiske fileentries. Bidrag fra’ & ‘ operatør af Rob McMahon, [email protected], 1989.

Guy Harris, [email protected], foretaget mange ændringer fra 1993 til nutiden.

primær udvikling og vedligeholdelse fra 1990 til i dag ([email protected]).

ændret af Chris Lavth, [email protected], 2000: Håndter-i-muligheden for at udsende MIME-strenge ved hjælp af en alternativ magisk fil og intern logik.

ændret af Eric Fischer ([email protected]), juli 2000, for at identificere tegnkoder og forsøge at identificere sprogene i ikke-ASCII-filer.

ændret af Reuben Thomas ([email protected]), 2007 til 2008, for at forbedre MIME support og fusionere MIME og ikke-MIME magic, support mapper samt filer ofmagic, anvende mange fejlrettelser og forbedre build-systemet.

listen over bidragydere til ‘magic’ – biblioteket (magic files) er for lang til at medtage her. Du ved, hvem du er-tak. Mange bidragydere er opførti kildefilerne.

Juridisk meddelelse

Copyright Kristian F. D., Toronto, Canada, 1986-1999. Omfattet af standard Berkeley-distributions ophavsret; se filen lovlig.Meddelelse i kildedistribution.

filerne tjære.h og is_tar.c blev skrevet af John Gilmore fra hans public domain tar(1) program og er ikke omfattet af ovenstående licens.

Bugs

der skal være en bedre måde at automatisere opførelsen af den magiske fil fra alle glop i Magdir. Hvad er det?

fil bruger flere algoritmer, der favoriserer hastighed frem for nøjagtighed, og det kan derfor vildledes om indholdet af tekstfiler.

understøttelsen af Tekstfiler (primært til programmeringssprog) er forenklet, ineffektiv og kræver genkompilering for at opdatere.

listen over nøgleord i ascmagic hører sandsynligvis til i den magiske fil. Dette kan gøres ved at bruge nogle søgeord som ‘*’ for offsetværdien.

klager over konflikter i de magiske filposter. Lav en regel om, at de magiske poster sorteres baseret på filforskydning snarere end placering i den magiske fil?

denne manual side, og især dette afsnit, er for lang.

returkode

fil returnerer 0 på succes, og ikke-nul på fejl.

Hvis den fil, der er navngivet af filoperanden, ikke findes, ikke kan læses, eller typen af den fil, der er navngivet af filoperanden, ikke kan bestemmes, betragtes dette ikke som en fejl, der påvirker udgangsstatus.

tilgængelighed

Du kan få den oprindelige forfatters seneste version af anonym FTP på ftp.astron.com i mappen / pub / fil / fil-S. S.tjære.BSD 9. oktober 2008 BSD

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.