Viděli jste příkazy k vytvoření souboru v Linuxu. Také jste viděli příkaz k odstranění souboru v Linuxu. Promluvme si o příkazu file v tomto článku.
Co je souborový příkaz v Linuxu a Unixu?
Jak poznáte typ souboru? Nechte mě hádat, podle jeho rozšíření, že? Myslím tím, že pokud uvidíte soubor s názvem MyData.csv, budete hádat, že soubor je ve formátu CSV.
Ale přípony souborů v Linuxu a Unixu nemají žádný skutečný význam. Můžete pojmenovat soubor csv, soubor zip. Můžete se rozhodnout nepoužívat vůbec žádné rozšíření.
V takových situacích se hodí příkaz file. Příkaz file v Linuxu určuje skutečný typ souboru bez ohledu na jeho příponu.
Má jednoduchou syntaxi s pouze několika možnostmi:
file [option] filename
Nyní, když znáte syntaxi, pojďme se podívat, jak používat příkaz file.
Příklad souborového příkazu v Linuxu
Ve své nejjednodušší podobě můžete použít příkaz file s názvem souboru nebo cestou k souboru a ten zobrazí typ souboru.
file filename
Zde je příklad:
[email protected]:~/$ file cpluplus.cpp
cpluplus.cpp: C++ source, ASCII text
Podívejme se na některé další způsoby, jak jej můžete použít s jeho možnostmi.
Odebrat název souboru z výstupu
Můžete použít volbu -b a výstup zobrazí pouze typ souboru s vynecháním názvu souboru. Mohlo by to být užitečné při skriptování.
file -b filename
Podívejte se na stejný příklad, který jste viděli dříve:
[email protected]:~/$ file -b cpluplus.cpp
C++ source, ASCII text
Získat typ mime souboru
Můžete také zobrazit typ MIME souboru díky -i možnost.
file -i filename
Zde je příklad příkazu pro soubor videa s informacemi o typu MIME a bez nich:
[email protected]:~/$ file my_video.mp4
my_video.mp4: ISO Media, MP4 v2 [ISO 14496-14]
[email protected]:~/$ file -i my_video.mp4
my_video.mp4: video/mp4; charset=binary
Můžete kombinovat volby -b a -i.
Získat informace o typu souboru v archivním souboru
Pokud zazipujete adresář a nyní máte komprimovaný soubor. Můžete prozkoumat nekomprimovaný obsah a určit typ souboru pomocí volby -z.
file -z compressed_file
Dovolte mi ukázat vám příklad s a bez volby -z:
[email protected]:~/$ file author-pro.zip
author-pro.zip: Zip archive data, at least v2.0 to extract
[email protected]:~/$ file -z author-pro.zip
author-pro.zip: PHP script, ASCII text (Zip archive data, at least v2.0 to extract)
Použít souborový příkaz s více soubory
Souborový příkaz lze spustit na více souborech současně.
file file1 file2 file3
Zde je příklad pro vás, abyste jej viděli v akci:
[email protected]:~/$ file cpluplus.cpp agatha.txt bash_script.sh
cpluplus.cpp: C++ source, ASCII textagatha.txt: ASCII text
bash_script.sh: Bourne-Again shell script, ASCII text executable
Použít příkaz file s regulárním výrazem
Pokud chcete použít příkaz file na více souborech, nemusíte vždy zadávat všechny názvy souborů. Místo toho můžete použít regulární výraz.
Je opravdu na vašich požadavcích a fantazii, jak ji využijete. Přesto ukážu několik příkladů.
Pokud chcete zobrazit typ souboru všech souborů v aktuálním adresáři, jednoduše použijte toto:
file *
Pokud chcete zobrazit typ souboru všech souborů s určitou příponou, můžete to udělat také:
file *.txt
Možnosti jsou nekonečné. Chcete zobrazit typ souboru souborů s názvem začínajícím na „a“? Použijte toto:
file [a]*
Další možnosti, které můžete použít s příkazem file
Zde je několik dalších možností s příkazem file, které můžete použít:
- -L :Postupujte podle symbolických odkazů a nahlaste typ cílového souboru
- -f název_souboru :Číst názvy souborů řádek po řádku z daného názvu_souboru a oznamuje typ souboru
Existuje také několik dalších možností, ale věřím, že jste se naučili všechny základní příklady příkazu souboru Linux. Pokud máte dotazy nebo návrhy, dejte mi vědět v sekci komentářů.