Ist diese Studienanleitung in Bezug auf Befehle zum Bestimmen von Dateitypen falsch?

10

Der Studienführer LPIC-1 Trainings- und Vorbereitungsleitfaden (Ghori Asghar, ISBN 978-1-7750621-0-3) enthält die folgende Frage ...

Mit welchem ​​der folgenden Befehle kann der Dateityp bestimmt werden?

  • (EIN) file
  • (B) type
  • (C) filetype
  • (D) what

... und behauptet, dass die Antwort lautet: "(B) type".

Aber ist "(A) file" nicht die richtige Antwort?

Ich fange an, an dem ganzen Buch zu zweifeln.

Linux-Liebhaber
quelle
11
Ich muss sagen, ein Buch, das mit den Worten beginnt: "Die Prüfungen basieren auf RHEL und Debian, also lasst uns CentOS und Ubuntu verwenden", schafft kein Vertrauen!
Stephen Kitt
Sie sollten den Autor kontaktieren und ihn über den Fehler informieren.
dr01

Antworten:

10

Ja, Ihr Buch scheint falsch zu sein.

Der fileBefehl gibt an, um welche Art von Datei es sich handelt. Aus der Man-Datei: "Datei - Dateityp bestimmen".
Einige Beispiele:

$  file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=ecc4d67cf433d0682a5b7f3a08befc45e7d18057, stripped
$ file activemq-all-5.15.0.jar
activemq-all-5.15.0.jar: Java archive data (JAR)

Der typeBefehl wird verwendet, um festzustellen, ob ein Befehl eingebaut oder extern ist:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin
Mikael Kjær
quelle
6
typeist in den meisten Shells integriert und gibt an, was ausgeführt werden kann (integriert, Alias, Funktion, ausführbare Datei usw.). In Ihrem Fall heißt es, dass es keine gibt test.sh, die ausgeführt werden kann (entweder in PATH oder als eingebaute / Funktion / Alias ​​usw.).
Muru
Du hast absolut recht. Ich habe das niemals gewusst. Ändert sich nicht die Antwort sollte aber sein file. Ich werde meine Antwort aktualisieren.
Mikael Kjær
Vielen Dank für die Antwort, ich bin froh, dass ich das Buch lol
Linux Lover
2

Der Dateityp wird normalerweise mit bestimmt file. Seine manZustände:

Datei - Dateityp bestimmen

Bis zu einem gewissen Grad können Sie aber auch verwenden type. Vergleichen Sie die beiden folgenden Auflistungen für:

  • script.pl, ein Perl-Skript
  • not_a_script, eine leere Datei

Hier ist eine für das Skript:

$ ls
script.pl
$ file script.pl 
script.pl: Perl script text executable
$ type script.pl
bash: type: script.pl: not found
$ type ./script.pl 
./script.pl is ./script.pl

Und hier ist eine für die leere Datei:

$ ls not_a_script 
not_a_script
$ file not_a_script 
not_a_script: empty
$ type not_a_script
bash: type: not_a_script: not found
$ type ./not_a_script
bash: type: ./not_a_script: not found

Wie Sie sehen können, typekönnen Sie feststellen, ob eine Datei ausführbar ist. Ist das eine "Bestimmung des Dateityps" oder nicht? Nun ... auf eine andere Art als das, was filebietet. Die Beschreibung des typein Bashs Mann eingebauten ist wie folgt:

Typ [-aftpP] Name [Name ...]

Geben Sie ohne Optionen an, wie jeder Name interpretiert werden soll, wenn er als Befehlsname verwendet wird.

Die richtige Antwort auf die Frage im Buch sollte meiner Meinung nach sein file, denn darum geht manes, und darum geht es beim Bestehen von Tests. Mit anderen Worten, meine erste Wahl ist file.


quelle