
Linuxは、オペレーティングシステムを管理するためにLinuxコマンドを使用する必要があるため、非常に複雑になる可能性があります。 fileコマンドはその1つです。
fileコマンドには、さまざまな用途があります。本質的には、ファイルタイプをチェックし、単純な形式で報告します。このコマンドは、ファイルを読み取れない理由を示し、名前が変更された場合に実際のファイルタイプを明らかにします。
このチュートリアルでは、fileコマンドの使用の基本と、それがVPS管理とLinux操作を強化する方法を学習します。
Linuxファイルコマンドは正確に何をしますか?
UNIXのファイル名は、ファイルタイプから完全に独立させることができます。たとえば、 example.zipという名前のファイル 実際にはテキストファイルにすることができます 予想されるようなアーカイブの代わりに。実際、ファイルに拡張子を付けることはできません。
これにより、実際のファイルタイプを判別するのが難しくなります。ここで、fileコマンドが役立ちます。ファイルの種類(オーディオ、オープンドキュメントスプレッドシート、テキストエディタファイル)がわかります。
fileコマンドは、各引数を調べ、3セットのテストを実行してファイルタイプを判別します。最初に成功すると、ファイルタイプの出力がトリガーされます。
- ファイルシステムテスト– このテストでは、statシステム呼び出しからの戻りを調べます。プログラムは、ファイルが空かどうか、または特別なファイルタイプかどうかを確認します。また、ヘッダーファイルで指定されている場合は、作業中のシステムに関連する既知のファイルタイプを検索します。
- 魔法のテスト– すべてのファイルにはマジックナンバーがあります 冒頭に添付。これらは、さまざまなファイルタイプに対応する固定配置の特別な値です。 fileコマンドには、データファイル / usr / share / misc / magicにあるすべてのマジックナンバーを含むデータベースがあります。 。 fileコマンドを実行すると、システムは指定されたファイルのマジックナンバーをそれと比較します。
- 言語テスト– このテストでは、ASCIIやUTF-8など、ファイルが書き込まれる文字セットを調べます。テストでは、最初の数行のどこかに表示される特別なシーケンスを探します。このテストは前の2つのテストよりも精度が低いため、最後に実行されます。
Linuxファイルコマンド構文について
VPSホスティングでfileコマンドを使用するには、PuTTYなどのSSHクライアントでファイルコマンドに接続する必要があります。
接続したら、ターミナルでfileコマンドを使用できます。ただし、始める前に、コマンドの構文を理解する必要があります。
file [options] [file name]
- ファイル –ファイルコマンドを実行するように端末に指示します。
- [オプション] –ここでコマンドに変数を追加できます。
- [ファイル名] –検査するファイルを入力します。
fileコマンドの出力には、ファイルタイプが標準形式で表示されます。また、使用したオプションに応じて、圧縮ファイルに保存されているデータ、サイズ、ファイルバージョンなどの他の情報も提供される場合があります。
Linuxファイルコマンドを示すために、サンプルテキストファイルを作成します。 Nanoテキストエディタがインストールされている場合、次のコマンドが機能します。
nano test.txt
コマンドラインは、Nanoテキストエディタで新しいファイルを開きます。数行のテキストを入力してから、 CTRL + Xを押します。 およびY 終了してファイルを保存します。
次に、最も基本的な形式のfileコマンドを使用して、 text.txtを確認しましょう。 ファイル:
file test.txt
出力では、ASCII形式のテキストファイルであることがわかります。

Linuxファイルコマンドの使用方法
fileコマンドの構文は、ファイルタイプのチェックだけに使用を制限するものではありません。お気づきかもしれませんが、[オプション]があります 変数を追加できる構文のセクション。このオプションを含めると、fileコマンドでさまざまなタスクを実行できるようになります
Linux fileコマンドで使用できるオプションはたくさんありますが、最も一般的に使用されるオプションの概要は次のとおりです。
- -b –ファイルタイプの簡単な説明を取得します。
- ファイル* –ディレクトリ内のすべてのファイルのタイプを一覧表示します。
- -i –MIMEファイルタイプを示します。
- -s –特別なファイルに使用されます。
- -z –圧縮ファイルの内部を調べます。
- –ヘルプ –ファイルコマンドのマニュアルを開きます。その他のオプションとその使用法が表示されます。
次に、各オプションとその使用方法について詳しく見ていきます。
Linuxのfileコマンドは、UNIXのファイル名が必ずしもファイルタイプに接続しているとは限らないため、価値があります。たとえば、 test.zipがある場合があります ユーザーがtest.csvに名前を変更したファイル。 この場合、次のコマンドで実際のファイルタイプを見つけることができます。
ファイルtest.csv
出力は、 test.csvを定義します ファイルは実際には.zip ファイル:

このコマンドは、ファイル名とそのタイプを出力します。ファイルタイプのみを表示する場合は、 -bを使用します ターミナルのオプションとファイル名:
file –b test.txt
出力にはASCIIテキストのみが表示されます ファイル名なし。

fileコマンドは、システムで使用可能な複数のファイルを処理することもでき、各ファイルの出力は別々の行にあります。これを行うには、変数をワイルドカード *に置き換えるだけです。 :
file *.txt
出力には、すべての .txtに関する情報が含まれます。 現在のディレクトリ内のファイル。

このコマンドを使用して、 * の前にディレクトリ名を追加することにより、ディレクトリ内のすべてのファイルを一覧表示できます。 。問題のディレクトリに移動する必要はありません。
たとえば、テスト内のすべてのASCIIテキストファイルを一覧表示する場合 ディレクトリの場合、rootまたはその他のディレクトリから次のコマンドを使用できます。
file Test/*.txt
出力は次のようになります:

MIMEファイルタイプを決定する
– iオプションは、MIMEファイルタイプを表示するために使用されます。 MIMEは、インターネット上のファイルタイプを分類する標準的な方法であり、タイプとサブタイプの2つの部分で構成されています。
コマンドは次のようになります:
file –i test.txt
上記のコマンドの出力は次のとおりです。

ファイル形式をASCIIテキストとして宣言する代わりに、ファイルを text / plainとして定義することに注意してください。 およびcharset=us-ascii 。
fileコマンドは、通常のファイルを分析するのに便利です。ただし、ブロックまたは文字の特殊ファイルを読み取ることはできません。それらの1つでfileコマンドを使用すると、それがブロックまたは文字の特殊ファイルであることが示されるだけです。
/ dev / ploop19269で単純なファイルコマンドを使用する場合 、ブロック特殊ファイルの場合、出力は次のようになります。

これらの特別なファイルを読むには、 -sを使用します オプション:
file –s /dev/ploop19269
ご覧のとおり、出力ははるかに詳細です。 ploop19269 DOS/MBRブートセクターです。

.zipのような圧縮ファイル内を読み取るには2つの方法があります またはgzip アーカイブ。 -z オプションは、圧縮ファイルの内容と圧縮の詳細に関する情報を見つけるために使用されます。オプション-Zを使用する 内容のみが表示されます。
完全に圧縮されたファイルの詳細を読み取るためのコマンドは次のとおりです。
file -z test.gz
以下は出力です。 test.gzが指定されていることに注意してください .gzipです file.txtを含む圧縮ファイル 。

それでは、 -Zと比較してみましょう。 オプション:
file -Z test.gz
このコマンドは、 test.gz内のファイルの種類のみを出力します –ASCIIテキスト。

Linux fileコマンドは、ユーザーがファイルを正しく識別するのに役立ちます。これは、ファイル名と拡張子がUNIXライクなシステムの実際のファイルタイプとは完全に異なる可能性があるため、特に便利です。
fileコマンドを使用するときは、必ず適切なオプションを使用し、正しいファイル名を指定してください。 Linux端末では大文字と小文字が区別されるため、大文字と小文字に注意してください。
この記事が、システム上のさまざまなファイルタイプについて詳しく学び、プロジェクトの開発を改善するのに役立つことを願っています。