学习指南LPIC-1 培训和准备指南(Ghori Asghar,ISBN 978-1-7750621-0-3)包含以下问题......
以下哪些命令可用于确定文件类型?
- (A)
file
- (二)
type
- (C)
filetype
- (四)
what
...并声称答案是:“(B) type
”。
但“(A)”不是file
正确答案吗?
我开始怀疑整本书了。
答案1
是的,你的书似乎是错误的。
该file
命令告诉您它是什么类型的文件。来自 man 文件:“文件——确定文件类型”。
举几个例子:
$ 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
答案2
文件类型通常由file
.其man
规定:
file — 确定文件类型
但你也可以在一定程度上使用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
提供。 Bash的man中对builtin的描述type
如下:
类型 [-aftpP] 名称 [名称 ...]
如果没有选项,请指示如果用作命令名称,将如何解释每个名称。
书中问题的正确答案应该是我认为的file
,因为书上就是这么man
说的,这就是通过测试的意义。或者说,我的第一选择是file
。