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

10

O guia de estudo LPIC-1 Training and Preparation Guide (Ghori Asghar, ISBN 978-1-7750621-0-3) contém a seguinte pergunta ...

Which of the following commands can be used to determine the file type?

  • (A) 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.

    
por Linux Lover 13.03.2018 / 06:35

2 respostas

10

Sim, parece que seu livro está errado.

O comando file informa qual tipo de arquivo é. A partir do 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 comando type é usado para dizer se um comando é construído ou externo:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin
    
por 13.03.2018 / 06:58
2

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

file — determine file type

Mas você também pode, até certo ponto, usar type . Compare as duas listagens abaixo para:

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

Aqui está uma 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, type pode determinar se um arquivo é executável. Isso é uma "determinação do tipo de arquivo" ou não? Bem ... De uma maneira diferente do que o file fornece. A descrição do type embutido no homem de Bash é a seguinte:

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

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

A resposta correta para a pergunta no livro deve estar na minha opinião file , porque é isso que o man diz, e é disso que trata os testes de aprovação. Ou, em outras palavras, minha primeira escolha é file .

    
por 13.03.2018 / 07:39

Tags