本学习指南关于确定文件类型的命令是否错误?

本学习指南关于确定文件类型的命令是否错误?

学习指南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

相关内容