Là hướng dẫn nghiên cứu này sai về các lệnh để xác định loại tập tin?


10

Hướng dẫn nghiên cứu Hướng dẫn đào tạo và chuẩn bị LPIC-1 (Ghori Asghar, ISBN 97-1-7750621-0-3) có chứa câu hỏi sau đây ...

Lệnh nào sau đây có thể được sử dụng để xác định loại tệp?

  • (A) file
  • (B) type
  • (C) filetype
  • (D) what

... Và tuyên bố rằng câu trả lời là: "(B) type".

Nhưng không phải "(A) file" câu trả lời đúng?

Tôi bắt đầu nghi ngờ toàn bộ cuốn sách.


11
Tôi phải nói rằng, một cuốn sách bắt đầu bằng cách nói rằng các bài kiểm tra dựa trên RHEL và Debian, vì vậy hãy sử dụng CentOS và Ubuntu không tạo cảm hứng cho sự tự tin!
Stephen Kitt

Bạn nên liên hệ với tác giả và thông báo cho anh ta về sai lầm.
dr_

Câu trả lời:


10

Vâng, có vẻ như cuốn sách của bạn là sai.

Các filelệnh nói với nó là những loại tập tin. Từ tệp man: "tệp - xác định loại tệp".
Một vài ví dụ:

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

Các typelệnh được sử dụng để nói nếu một lệnh được xây dựng trong hoặc bên ngoài:

$ type file
file is /usr/bin/file
$ type type
type is a shell builtin

6
typelà một nội trang trên hầu hết các shell, cho chúng ta biết cái gì đó có thể được thực thi là gì (nội dung, bí danh, hàm, thực thi, v.v.). Trong trường hợp của bạn, nó nói rằng không có test.shcái nào có thể được thực thi (trong PATH, hoặc dưới dạng dựng sẵn / hàm / bí danh, v.v.).
muru

Bạn hoàn toàn đúng. Tôi không bao giờ biết rằng. Không thay đổi câu trả lời nên được filemặc dù. Tôi sẽ cập nhật câu trả lời của tôi.
Mikael Kjær

Cảm ơn bạn đã trả lời, tôi rất vui vì tôi đã sao chép cuốn sách lol
Người yêu Linux

2

Loại tệp thường được xác định với file. manTrạng thái của nó :

tệp - xác định loại tệp

Nhưng bạn cũng có thể sử dụng ở một mức độ nhất định type. So sánh hai danh sách dưới đây cho:

  • script.pl, một kịch bản Perl
  • not_a_script, một tập tin trống

Đây là một cho kịch bả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

Và đây là một cho tập tin trống:

$ 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

Như bạn có thể thấy, typecó thể xác định xem một tập tin có thể thực thi được không. Đó có phải là "xác định loại tập tin" hay không? Chà ... theo một cách khác với những gì filecung cấp. Mô tả về typenội dung trong người của Bash như sau:

gõ [-aftpP] tên [tên ...]

Không có tùy chọn, cho biết mỗi tên sẽ được hiểu như thế nào nếu được sử dụng làm tên lệnh.

Câu trả lời chính xác cho câu hỏi trong cuốn sách nên theo ý kiến ​​của tôi file, bởi vì đó là những gì nó mannói, và đó là những gì vượt qua các bài kiểm tra. Hay nói cách khác, lựa chọn đầu tiên của tôi là file.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.