Linux file Befehl (5 Beispiele)

Während der Arbeit auf der Linux-Befehlszeile kann es vorkommen, dass Sie auf eine Datei stoßen, die ein Archiv ist (z.B. eine.zip-Datei), aber ihre Erweiterung (oder ihr Fehlen) würde etwas anderes vermuten lassen. In Zeiten wie diesen erweist sich der Befehl file als hilfreich, da Sie damit den tatsächlichen Dateityp bestimmen können.

In diesem Tutorial werden wir die Grundlagen des Dateibefehls anhand einiger leicht verständlicher Beispiele diskutieren. Aber bevor wir das tun, ist es erwähnenswert, dass alle hier genannten Beispiele auf einem Ubuntu 18.04 LTS-Rechner getestet wurden.

Linux-Dateibefehl

Wie bereits eingangs erwähnt, können Sie mit dem Befehl file unter Linux den Dateityp sehen, mit dem Sie es zu tun haben. Folgendes ist seine Syntax:

file [OPTIONS] file1 file2 ....

Und so erklärt es die Man Page des Tools:

     file tests each argument in an attempt to classify it.  There are three
     sets of tests, performed in this order: filesystem tests, magic tests,
     and language tests.  The first test that succeeds causes the file type to
     be printed.

The type printed will usually contain one of the words text (the file
contains only printing characters and a few common control characters and
is probably safe to read on an ASCII terminal), executable (the file con?
tains the result of compiling a program in a form understandable to some
UNIX kernel or another), or data meaning anything else (data is usually
“binary” or non-printable).  Exceptions are well-known file formats (core
files, tar archives) that are known to contain binary data.  When adding
local definitions to /etc/magic, make sure to preserve these keywords.
Users depend on knowing that all the readable files in a directory have
the word “text” printed.  Don’t do as Berkeley did and change “shell
commands text” to “shell script”.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine bessere Vorstellung davon vermitteln sollen, wie der Dateibefehl funktioniert.

Q1. Wie verwendet man den Dateibefehl?

Einfach, einfach’file‘ mit einem Dateinamen als Eingabe ausführen. Zum Beispiel:

file test

Da ‚test‘ ein Verzeichnis auf meinem System ist, hat mir der Befehl file genau das gesagt. Hier ist der Output, den es produziert hat:

test: directory

Q2. Wie kann man auf mehrere Dateien testen?

Das ist auch ziemlich einfach. Übergeben Sie einfach den Namen der Dateien als Eingabe, ähnlich wie im vorherigen Beispiel.

Hier ist ein Beispiel:

file test test.txt .local

Und hier ist die Ausgabe, die dieser Befehl erzeugt hat:

test:     directory
test.txt: ASCII text
.local:   directory

Q3. Wie kann man die Datei dazu bringen, nur den Typ der Ausgabe anzuzeigen?

Wie Sie in der bisherigen Ausgabe des Dateibefehls sehen können, enthält die Ausgabe zwei Dinge: Dateiname und Typ. Wenn Sie jedoch möchten, können Sie eine Datei erstellen, die nur den Typ der Ausgabe erzeugt. Dies kann mit der Kommandozeilenoption -b erfolgen.

Zum Beispiel der folgende Befehl:

file -b test

erzeugte die folgende Ausgabe auf meinem System:

directory

Q4. Wie kann man den MIME-Typ von Dateien sehen?

Um den MIME-Typ für eine Datei anzuzeigen, verwenden Sie die Befehlszeilenoption -i. Hier ist ein Beispiel:

Q5. Wie kann man den Separator in der Ausgabe ändern?

Wie bereits erwähnt, erzeugt der Befehl file im Standardmodus in der Ausgabe einen Dateinamen, gefolgt von seinem Typ. Beide Details sind durch einen Doppelpunkt (:) getrennt. Wenn Sie möchten, können Sie dieses Trennzeichen jedoch mit der Kommandozeilenoption -F ändern.

Zum Beispiel:

file -F " +" test

erzeugte die folgende Ausgabe:

test + directory

Fazit

Abschließend möchte ich sagen, dass die Datei ein wichtiges Werkzeug ist, das Sie in Ihrem Kitty haben sollten. Wir haben hier nur die Oberfläche zerkratzt, da das Tool viel mehr Funktionen in Bezug auf die Kommandozeilenoptionen bietet. Sobald du mit dem, was wir hier besprochen haben, fertig bist, kannst du zur Man Page file command gehen, um mehr darüber zu erfahren.

Das könnte Dich auch interessieren …