Este guia de estudo está errado sobre os comandos para determinar os tipos de arquivo?

10

O guia de estudo LPIC-1 Guia de Treinamento e Preparação (Ghori Asghar, ISBN 978-1-7750621-0-3) contém a seguinte pergunta ...

Qual dos seguintes comandos pode ser usado para determinar o tipo de arquivo?

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

... e afirma que a resposta é: "(B) type".

Mas não é "(A) file" a resposta correta?

Estou começando a duvidar de todo o livro.

Linux Lover
fonte
11
Eu tenho que dizer, um livro que começa dizendo “os exames são baseados em RHEL e Debian, então vamos usar o CentOS e Ubuntu” não inspira confiança!
Stephen Kitt
Você deve entrar em contato com o autor e notificá-lo sobre o erro.
Dr_

Respostas:

10

Sim, parece que seu livro está errado.

O filecomando informa que tipo de arquivo é esse. No arquivo man: "file - determine o tipo de arquivo".
Alguns exemplos:

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

O typecomando é usado para dizer se um comando é interno ou externo:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin
Mikael Kjær
fonte
6
typeé um builtin na maioria dos shells, o que nos diz o que é algo que pode ser executado (builtin, alias, função, executável etc.). No seu caso, está dizendo que não há nada test.shque possa ser executado (no PATH, ou como um builtin / function / alias, etc.).
Muru
Você está absolutamente correto. Eu nunca soube disso. Não muda a resposta deve ser fileembora. Vou atualizar minha resposta.
Mikael Kjær
Obrigado pela resposta, eu estou feliz por ter pirateado o lol livro
Amante do Linux
2

O tipo de arquivo é normalmente determinado com file. Seus manestados:

file - determina o tipo de arquivo

Mas você também pode, em certa medida, usar type. Compare as duas listagens abaixo para:

  • script.pl, um script Perl
  • not_a_script, um arquivo vazio

Aqui está um para o 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

E aqui está uma para o arquivo vazio:

$ 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

Como você pode ver, typepode determinar se um arquivo é executável. Isso é uma "determinação do tipo de arquivo" ou não? Bem ... De uma maneira diferente do que filefornece. A descrição do typebuiltin no homem de Bash é a seguinte:

digite [-aftpP] name [name ...]

Sem opções, indique como cada nome seria interpretado se usado como um nome de comando.

A resposta correta para a pergunta do livro deve estar na minha opinião file, porque é isso que mandiz e é disso que se trata a aprovação nos testes. Ou, em outras palavras, minha primeira escolha é file.


fonte