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

Вероятно, вы ищете:

сброс; cat > /dev/null

10
13.03.2018, 09:42
2 ответа

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

Команда 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
10
27.01.2020, 20:02

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

file — determine file type

Но вы также можете в определенной степени использовать 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встроенного в Баша человека выглядит следующим образом:

type [-aftpP] name [name...]

With no options, indicate how each name would be interpreted if used as a command name.

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

2
27.01.2020, 20:02

Теги

Похожие вопросы