¿Esta guía de estudio es incorrecta acerca de los comandos para determinar los tipos de archivos?

10

La guía de estudio LPIC-1 Training and Evaluation Guide (Ghori Asghar, ISBN 978-1-7750621-0-3) contiene la siguiente pregunta ...

¿Cuál de los siguientes comandos se puede usar para determinar el tipo de archivo?

  • (UN) file
  • (SI) type
  • (C) filetype
  • (RE) what

... y afirma que la respuesta es: "(B) type".

¿Pero no es "(A) file" la respuesta correcta?

Estoy empezando a dudar de todo el libro.

Amante de Linux
fuente
11
Tengo que decir que un libro que comienza diciendo "los exámenes se basan en RHEL y Debian, ¡así que usemos CentOS y Ubuntu" no inspira confianza!
Stephen Kitt
Debe comunicarse con el autor y notificarle el error.
dr_

Respuestas:

10

Sí, parece que tu libro está equivocado.

El filecomando le dice qué tipo de archivo es. Desde el archivo man: "archivo - determinar tipo de archivo".
Algunos ejemplos:

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

El typecomando se usa para saber si un comando está integrado o externo:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin
Mikael Kjær
fuente
66
typees incorporado en la mayoría de los shells, lo que nos dice qué es algo que se puede ejecutar (incorporado, alias, función, ejecutable, etc.). En su caso, está diciendo que no hay nada test.shque pueda ejecutarse (ya sea en PATH, o como un builtin / function / alias, etc.).
muru
Estás absolutamente en lo correcto. Nunca lo supe. Sin fileembargo, la respuesta no debería ser así . Actualizaré mi respuesta.
Mikael Kjær
Gracias por la respuesta, me alegro de haber pirateado el libro jajaja
Linux Lover
2

El tipo de archivo normalmente se determina con file. Sus manestados:

archivo: determina el tipo de archivo

Pero también puedes usar en cierta medida type. Compare los dos listados a continuación para:

  • script.pl, un script de Perl
  • not_a_script, un archivo vacío

Aquí hay uno para el guión:

$ 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

Y aquí hay uno para el archivo vacío:

$ 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 puede ver, typepuede determinar si un archivo es ejecutable. ¿Es eso una "determinación del tipo de archivo" o no? Bueno ... de una manera diferente a lo que fileproporciona. La descripción de la typeconstrucción en el hombre de Bash es la siguiente:

escriba [-aftpP] nombre [nombre ...]

Sin opciones, indique cómo se interpretaría cada nombre si se usara como nombre de comando.

La respuesta correcta a la pregunta en el libro debería estar en mi opinión file, porque eso es lo que mandice, y de eso se trata pasar las pruebas. O en otras palabras, mi primera opción es file.


fuente