Czy ten poradnik do badań nie ma racji co do poleceń do określania typów plików?

10

Przewodnik do nauki LPIC-1 Przewodnik szkoleniowy i przygotowawczy (Ghori Asghar, ISBN 978-1-7750621-0-3) zawiera następujące pytanie ...

Którego z poniższych poleceń można użyć do określenia typu pliku?

  • (ZA) file
  • (B) type
  • (DO) filetype
  • (RE) what

... i twierdzi, że odpowiedź brzmi: „(B) type”.

Ale czy „(A) file” nie jest poprawną odpowiedzią?

Zaczynam wątpić w całą książkę.

Miłośnik Linuksa
źródło
11
Muszę powiedzieć, że książka, która zaczyna się od powiedzenia „egzaminy oparte są na RHEL i Debianie, więc użyjmy CentOS i Ubuntu” nie budzi zaufania!
Stephen Kitt
Powinieneś skontaktować się z autorem i powiadomić go o błędzie.
dr_

Odpowiedzi:

10

Tak, wygląda na to, że twoja książka jest błędna.

fileKomenda mówi jaki rodzaj pliku jest. Z pliku man: „plik - określ typ pliku”.
Kilka przykładów:

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

typePolecenie jest używane, aby powiedzieć, czy polecenie jest wbudowany lub zewnętrzny:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin
Mikael Kjær
źródło
6
typejest wbudowany w większość powłok, który mówi nam, czym jest coś, co można wykonać (wbudowany, alias, funkcja, plik wykonywalny itp.). W twoim przypadku jest powiedziane, że nie test.shmożna tego wykonać (ani w PATH, ani jako wbudowany / function / alias itp.).
muru
Masz całkowitą rację. Nie zdawałem sobie z tego sprawy. Nie zmienia to jednak odpowiedzi file. Zaktualizuję moją odpowiedź.
Mikael Kjær
Dziękuję za odpowiedź, cieszę się, że pirowałem książkę lol
Linux Lover
2

Typ pliku jest zwykle określany za pomocą file. Jego manstany:

plik - określ typ pliku

Ale możesz również do pewnego stopnia korzystać type. Porównaj dwie poniższe oferty dla:

  • script.pl, skrypt Perla
  • not_a_script, pusty plik

Oto jeden ze skryptu:

$ 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

A oto jeden dla pustego pliku:

$ 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

Jak widać, typemożna ustalić, czy plik jest wykonywalny. Czy to „określenie typu pliku”, czy nie? Cóż ... W inny sposób niż to, co filezapewnia. Opis typewbudowanego w człowieka Basha jest następujący:

wpisz [-aftpP] nazwa [nazwa ...]

Bez opcji wskaż, w jaki sposób każda nazwa będzie interpretowana, jeśli zostanie użyta jako nazwa polecenia.

Prawidłowa odpowiedź na pytanie w książce powinna być moim zdaniem file, ponieważ tak właśnie jest mani na tym właśnie polega zdanie testów. Innymi słowy, moim pierwszym wyborem jest file.


źródło