Является ли это учебное пособие неправильным в отношении команд для определения типов файлов?

10

Учебное пособие LPIC-1 Обучение и Руководство по подготовке (Асгар Гори, ISBN 978-1-7750621-0-3) содержит следующий вопрос ...

Какую из следующих команд можно использовать для определения типа файла?

  • (А) file
  • (В) type
  • (С) filetype
  • (D) what

... и утверждает, что ответ: "(B) type".

Но разве "(A) file" не правильный ответ?

Я начинаю сомневаться во всей книге.

Linux Lover
источник
11
Я должен сказать, что книга, которая начинается с того, что «экзамены основаны на RHEL и Debian, так что давайте использовать CentOS и Ubuntu» не внушает доверия!
Стивен Китт
Вам следует связаться с автором и сообщить ему об ошибке.
Dr_

Ответы:

10

Да, похоже, ваша книга не права.

Команда fileсообщает, что это за файл. Из файла man: «file - определить тип файла».
Несколько примеров:

$  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)

Команда typeиспользуется, чтобы сказать, является ли команда встроенной или внешней:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin
Микаэль Къер
источник
6
typeявляется встроенной в большинство оболочек, которая сообщает нам, что может быть выполнено (встроенный, псевдоним, функция, исполняемый файл и т. д.). В вашем случае говорится, что нет, test.shчто может быть выполнено (либо в PATH, либо как встроенный / функция / псевдоним и т. Д.).
Муру
Вы совершенно правы. Я никогда не знал этого. Не меняет ответ должен быть, fileхотя. Я обновлю свой ответ.
Микаэль Кьер
Спасибо за ответ, я рад, что написал книгу lol
Linux Lover
2

Тип файла обычно определяется с помощью file. Его manсостояния:

файл - определить тип файла

Но вы также можете в определенной степени использовать type. Сравните два списка ниже для:

  • script.plскрипт Perl
  • not_a_script, пустой файл

Вот один из сценариев:

$ 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

И вот один для пустого файла:

$ 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

Как видите, typeможете определить, является ли файл исполняемым. Это определение типа файла или нет? Ну ... По-другому, что fileобеспечивает. Описание typeвстроенного в человека Баша следующее:

введите [-aftpP] name [name ...]

Без параметров укажите, как каждое имя будет интерпретироваться, если оно используется в качестве имени команды.

Правильный ответ на вопрос в книге должен быть, на мой взгляд file, потому что это то, о чем он manговорит, и это то, что прохождение тестов. Или, другими словами, мой первый выбор file.


источник