Чи не в цьому посібнику з вивчення неправильних команд для визначення типів файлів?


10

Навчальний посібник з навчання та підготовки LPIC-1 (Ghori Asghar, ISBN 978-1-7750621-0-3) містить таке запитання ...

Які з перелічених нижче команд можна використовувати для визначення типу файлу?

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

... і стверджує, що відповідь така: "(B) type".

Але чи не "(A) file" правильна відповідь?

Я починаю сумніватися у всій книзі.


11
Треба сказати, що книга, яка починається з того, що "іспити базуються на RHEL та Debian, тож давайте використовувати CentOS та Ubuntu" не викликає довіри!
Стівен Кітт

Вам слід зв’язатися з автором та повідомити його про помилку.
dr_

Відповіді:


10

Так, схоже, що ваша книга неправильна.

fileКоманда вказує , який файл це. З файлу man: "файл - визначте тип файлу".
Кілька прикладів:

$  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. Я оновлю свою відповідь.
Mikael Kjær

Дякую за відповідь, я радий, що я піратів книгу 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] ім'я [ім'я ...]

Не маючи жодних параметрів, вкажіть, як інтерпретуватиметься кожне ім'я, якщо воно буде використано як ім'я команди

Правильна відповідь на запитання в книзі повинна бути, на мою думку file, адже саме так manсказано, і саме про це проходять тести. Або іншими словами, мій перший вибір file.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.