ファイルの形式のみを印刷するfileコマンド


1

通常、Linuxのfileコマンドは、拡張子が言及されているかどうかに関係なく、ファイルの真のファイルタイプを提供します。

例:

# file cntlm-0.92.3-1.x86_64.rpm
cntlm-0.92.3-1.x86_64.rpm: RPM v3.0 bin i386/x86_64 cntlm-0.92.3-1

# file zip-pack
zip-pack: Zip archive data, at least v2.0 to extract

これはファイル形式の長い説明を提供しますが、必要なのは形式のみです(zipの場合はzipのみを印刷する必要があります)

どうすればこれを達成できますか?

回答:


6

お気づきのように、fileデフォルトでは、出力は少し冗長です。

$ file some.pdf
some.pdf: PDF document, version 1.4

この-bオプションはファイル名の出力を抑制し、次のことに役立ちます。

$ file -b some.pdf
PDF document, version 1.4

情報が多すぎる場合は、-iオプションを使用して、MIMEタイプとエンコードのみを印刷します。

$ file -bi some.pdf
application/pdf; charset=binary

または、タイプだけが必要な場合は、次を使用します--mime-type

$ file -b --mime-type some.pdf
application/pdf

標準のMIMEタイプのリストは、ここにあります。スラッシュの前の単語をすることができapplicationaudiovideo、またはimage、他の中。MIMEタイプの標準からその最初の単語を削除する場合cutは、使用できます。

$ file -b --mime-type some.pdf | cut -d/ -f2-
pdf

MIMEタイプから最初の単語を削除するとあいまいさが残る可能性があるため、MIMEタイプ全体を保持することをお勧めします。


1
素晴らしい答え:)今日何か新しいことを学びました。
FELDAP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.