คู่มือการศึกษานี้ผิดเกี่ยวกับคำสั่งในการกำหนดประเภทไฟล์หรือไม่?


10

คู่มือการศึกษาLPIC-1 คู่มือการฝึกอบรมและการเตรียมการ (Ghori Asghar, ISBN 978-1-7750621-0-3) ประกอบด้วยคำถามต่อไปนี้ ...

คำสั่งใดต่อไปนี้ที่สามารถใช้เพื่อกำหนดประเภทไฟล์

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

... และอ้างว่าคำตอบคือ: "(B) type"

แต่ไม่ใช่fileคำตอบที่ถูกต้อง"(A) " ใช่ไหม

ฉันเริ่มสงสัยทั้งเล่ม


11
ฉันต้องบอกว่าหนังสือที่เริ่มต้นด้วยการพูดว่า "การสอบอิงจาก RHEL และ Debian ดังนั้นให้ใช้ CentOS และ Ubuntu" ไม่ได้สร้างแรงบันดาลใจความมั่นใจ!
สตีเฟ่น Kitt

คุณควรติดต่อผู้เขียนและแจ้งให้เขาทราบถึงข้อผิดพลาด
dr_

คำตอบ:


10

ดูเหมือนว่าหนังสือของคุณจะผิด

fileคำสั่งบอกสิ่งที่ชนิดของไฟล์ที่มันเป็น จากไฟล์ man: "file - กำหนดประเภทไฟล์"
ตัวอย่างบางส่วน:

$  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

6
typeเป็น builtin บนเชลล์ส่วนใหญ่ซึ่งบอกเราว่ามีบางสิ่งที่สามารถดำเนินการได้ (builtin, alias, function, executable และอื่น ๆ ) ในกรณีของคุณมันกำลังบอกว่าไม่มีสิ่งใดtest.shที่สามารถดำเนินการได้ ( ไม่ว่าจะเป็น PATH หรือในตัว / ฟังก์ชั่น / นามแฝง ฯลฯ )
muru

คุณพูดถูก ฉันไม่เคยรู้เรื่องนี้เลย ไม่ควรเปลี่ยนคำตอบfileด้วยซ้ำ ฉันจะอัปเดตคำตอบของฉัน
Mikael Kjær

ขอบคุณสำหรับคำตอบฉันดีใจที่ฉันละเมิดลิขสิทธิ์หนังสือ lol
Linux Lover

2

fileประเภทไฟล์จะถูกกำหนดตามปกติ manรัฐของมัน:

ไฟล์ - กำหนดประเภทของไฟล์

แต่คุณสามารถใช้ในระดับหนึ่ง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มีให้ คำอธิบายของtypebuiltin ใน Bash's man มีดังนี้:

พิมพ์ชื่อ [-aftpP] ชื่อ [ชื่อ ... ]

ไม่มีตัวเลือกระบุว่าแต่ละชื่อจะตีความได้อย่างไรหากใช้เป็นชื่อคำสั่ง

คำตอบที่ถูกต้องสำหรับคำถามในหนังสือเล่มนี้ควรอยู่ในความคิดของฉันfileเพราะนั่นคือสิ่งที่มันmanพูดและนั่นคือสิ่งที่ผ่านการทดสอบเกี่ยวกับ fileหรือกล่าวอีกนัยหนึ่งตัวเลือกแรกของฉันคือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.