GNU/Linux >> Znalost Linux >  >> Linux

Linux File Command:Jak určit typ souboru v Linuxu

Úvod

Linux file pomáhá určit typ souboru a jeho data. Příkaz nebere v úvahu příponu souboru a místo toho spustí sérii testů, aby zjistil typ dat souboru.

V tomto tutoriálu vám ukážeme, jak file příkaz funguje a jak jej používat.

Předpoklady

  • Systém se systémem Linux.
  • Přístup do okna terminálu.

Syntaxe příkazu souboru

file používá následující základní syntaxi:

file [option] [file name]

Ve výše uvedené syntaxi file name představuje název souboru, který chcete testovat. file příkaz provede tři sady testů, které se snaží určit typ souboru, v tomto pořadí:

  • Testy systému souborů proveďte systémové volání stat(2) a zkontrolujte výsledek proti systémovému hlavičkovému souboru. Tímto způsobem file určuje, zda je soubor běžného typu pro váš systém (jako je textový soubor, obrázek, adresář atd.).
  • Magické testy pomocí krátkého řetězce čísel uložených na začátku souboru ("magické číslo") otestujte, zda je soubor binární spustitelný soubor, a pokud ano, určete jeho typ. Informace potřebné k provedení těchto testů jsou uloženy v /etc/magic nebo /usr/share/misc/magic z kompilovaného magického souboru.
  • Jazykové testy pomocí speciální značky určete, ve kterém programovacím jazyce je binární spustitelný soubor zapsán.

Výstup příkazu poskytuje krátký popis souboru a datového typu. Například pomocí file příkaz k testování textového souboru:

file example.txt

Možnosti příkazu souboru

file používá následující možnosti:

Možnost Popis
--apple Změní výstup příkazu na ten, který používají starší verze systému MacOS.
-b, --brief Změní výstup příkazu na stručný režim.
-C, --compile Vytvoří výstupní soubor, který obsahuje předem analyzovanou verzi magického souboru nebo adresáře.
-c, --checking-printout Zkontroluje výtisk analyzovanou verzi magického souboru.
-d Vytiskne informace o interním ladění ve standardním chybovém formátu.
-E Při chybě systému souborů se zobrazí chybová zpráva a skončí se.
-e, --exclude Vyloučí test ze seznamu testů provedených na souboru.
--exclude-quiet Nezahrnuje testy, které file příkaz neví o.
--extension Vytiskne seznam platných přípon pro daný typ souboru.
-F, --separator Použije zadaný řetězec jako oddělovač mezi názvem souboru a typem souboru.
-f, --files-from Použije poskytnutý textový soubor jako seznam souborů k testování. Seznam musí obsahovat pouze jeden název souboru na řádek.
-h, --no-deference Zakáže následující symbolické odkazy.
-i, --mime Změní výstup příkazu na řetězec typu MIME.
--mime-type, --mime-encoding Změní výstup příkazu na řetězec typu MIME a zobrazí pouze určený prvek (typ nebo kódování).
-k, --keep-going Udržuje test v chodu i po první shodě výsledků.
-l, --list Zobrazuje seznam odpovídajících vzorů v sestupném pořadí podle síly.
-L, --deference Umožňuje následující symbolické odkazy.
-m, --magic-file Používá alternativní magický soubor poskytnutý uživatelem.
-N, --no-pad Nevyplňuje názvy souborů, aby byly zarovnány s výstupem.
-n, --no-buffer Po kontrole každého souboru vyprázdní výstup.
-p, --preserve-date Pokusí se zachovat poslední čas přístupu k souboru, aby vypadal jako file příkaz to netestoval.
-P, --parameter Nastavuje různé parametry, jako je maximální počet bajtů nebo rekurze, počet a limit délky.
-r, --raw Zakáže překlad netisknutelných znaků.
-s, --special-files Umožňuje čtení speciálních souborů.
-S, --no-sandbox Zakáže sandboxing na systémech, které jej podporují.
-v, --version Zobrazuje verzi file příkaz.
-z, --uncompress Kontroluje komprimované soubory.
-Z, --uncompress-noreport Kontroluje komprimované soubory a zobrazuje pouze typ souboru bez komprese.
-0, --print0 Zobrazí prázdný znak za koncem názvu souboru.
--help Zobrazí zprávu nápovědy.

Příklady příkazů souboru

Níže jsou uvedeny příklady běžných případů použití file příkaz.

Testovat více souborů

Chcete-li testovat více souborů současně, připojte názvy souborů na konec file příkaz:

file [file name 1] [file name 2] … [file name n]

Například testování adresáře, textového souboru, obrázku a webové stránky:

file Example example.txt sample.png index.html

Otestovat všechny soubory v adresáři

Přidejte zástupný znak (* ) do file příkaz k otestování všech souborů a adresářů v aktuálním pracovním adresáři:

file *

Přidejte cestu k adresáři k zástupnému znaku, abyste otestovali obsah tohoto adresáře:

file [path to directory]/*

Chcete-li například otestovat obsah Příkladu adresář, použijte:

file Example/*

Testovat soubory v rozsahu

file umožňuje otestovat podmnožinu souborů v adresáři pomocí rozsahů ve stylu Regex. Vyberte rozsah umístěním hodnot do závorek. Například testování souborů a adresářů s názvy v rozsahu a-l:

file [a-l]*

Protože rozsahy ve stylu Regex rozlišují velká a malá písmena, výstup ve výše uvedeném příkladu zobrazuje pouze typy souborů pro soubory začínající malými písmeny a-l. Přidání dalšího rozsahu vám umožní zahrnout také velká písmena:

file [a-l]* [A-L]*

Testovat soubory ze seznamu

file umožňuje použít textový soubor jako seznam souborů k testování. Textový soubor musí obsahovat pouze jeden název souboru na řádek.

Použijte -f a přidejte cestu k souboru seznamu do file příkaz:

file -f list.txt

Testovat speciální soubory

file příkaz není vždy schopen číst speciální soubory, jako jsou systémové soubory:

file /dev/sda5

Ve výše uvedeném příkladu výstup příkazu souboru ukazuje, že /dev/sda5 je speciální blokový soubor, ale nenabízí další podrobnosti. Pomocí -s možnost vám umožní plně otestovat speciální soubory:

sudo file -s /dev/sda5

Testovat komprimované soubory

Použijte -z možnost plně otestovat komprimované soubory a pokusit se zjistit jejich obsah:

file -z install.tar.gz

Test analyzované verze souboru

Pomocí -c zobrazí kontrolní výpis pro analyzovanou verzi souboru:

file -c example.txt

Tato možnost se obvykle používá s -m možnost ladění a instalace nového magického souboru.

Zobrazit stručný výstup

Pomocí -b zobrazí stručnou verzi výstupu. Tato verze výstupu zobrazuje pouze typy souborů a vynechává názvy souborů.

file -b Example example.txt sample.png index.html

Přidat oddělovače do výstupu

Pomocí -F umožňuje definovat znak, který funguje jako oddělovač mezi sekcemi názvu souboru a typu souboru výstupu. Přidejte například znaménko plus (+ ) jako oddělovač s:

file -F + Example example.txt sample.png index.html

Odebrat odsazení názvu souboru z výstupu

Použijte -N možnost odstranit výplň mezi sekcemi názvu souboru a typu souboru ve výstupu:

file -N Example example.txt sample.png index.html

Výsledný výstup již není svisle zarovnán:


Linux
  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Jak používat příkaz Tar v Linuxu

  3. Jak spolehlivě určit typ souborového systému pod Linuxem?

  1. Jak odstranit (smazat) soubor nebo adresář v Linuxu

  2. Jak používat příkaz md5sum v Linuxu

  3. Jak používat dotykový příkaz v Linuxu

  1. Jak používat příkaz Linux head

  2. Jak používat příkaz Linux diff

  3. Jak zkopírovat soubor do více adresářů v Linuxu