ในกรณีtype
นี้ไม่มีอะไรเกี่ยวข้องกับ bash ในตัวtype
แต่จะเพิ่มเติมในภายหลัง
เล็กน้อยเกี่ยวกับ"ประเภท"
type
คำสั่งในตัว BASH ให้ข้อมูลเกี่ยวกับคำสั่งแก่คุณ ดังนั้น:
$ type type
type is a shell builtin
ไวยากรณ์คือ:
type [-tap] [name ...]
-t
: พิมพ์เฉพาะประเภทหากพบ
-a
: พิมพ์คำสั่งทั้งหมดที่เกิดขึ้นทั้งในตัวและอื่น ๆ
-p
: พิมพ์ไฟล์ดิสก์ที่จะถูกดำเนินการเมื่อมีคำสั่งโทรหรือไม่มีอะไร
ถ้าเราดูที่time
, kill
และcat
เป็นตัวอย่าง:
$ type time kill cat
time is a shell keyword
kill is a shell builtin
cat is /bin/cat
$ type -t time kill cat
keyword
builtin
file
$ type -a time kill cat
time is a shell keyword
time is /usr/bin/time
kill is a shell builtin
kill is /bin/kill
cat is /bin/cat
$ type -ta time kill cat
keyword
file
builtin
file
file
ตอนนี้ระบุว่าถ้าคุณอยู่ในเปลือก Bash และประเภทtime some_cmd
bash builtin time
จะใช้ ที่จะใช้ระบบที่คุณสามารถทำได้time
/usr/bin/time some_cmd
วิธีการหนึ่งที่มักจะใช้เพื่อให้มั่นใจว่าระบบและไม่ได้ในตัว, which
คำสั่งที่ใช้คือการใช้
tt=$(which time)
และจากนั้นใช้กับระบบการโทร$tt
time
คำสั่งในคำถาม
ในกรณีนี้เป็นตัวเลือกในการคำสั่ง-type
find
ตัวเลือกใช้เวลาหนึ่งอาร์กิวเมนต์โดยที่ระบุประเภทของกิจการ ตัวอย่าง
find . -type f # File
find . -type d # Directory
มีมากขึ้นตรวจสอบman find
ส่วนที่เหลือ
ในการค้นหาตัวเลือกเฉพาะที่คุณสามารถทำได้ (ในขณะที่อยู่ในคน):
/ ^ \ s * ประเภทEnter
จากนั้นใช้n
สำหรับถัดไปจนกว่าคุณจะพบมัน
คำสั่งเกี่ยวกับเชลล์เล็กน้อย
นี่คือการตีความส่วนตัวเล็กน้อย
บางสิ่งที่ควรกล่าวถึงในกรณีนี้คือคำสั่งตัวเลือกอาร์กิวเมนต์และไพพ์
สิ่งนี้ค่อนข้างใช้อย่างหลวม ๆ แต่ในคำศัพท์ของฉันเรามีสั้น:
- คำสั่ง: โปรแกรมหรือในตัว
- พารามิเตอร์: เอนทิตีหลังจากคำสั่ง
- ตัวเลือก: พารามิเตอร์ที่เป็นตัวเลือก
- อาร์กิวเมนต์: พารามิเตอร์ที่ต้องการ
ในคำสั่งวงเล็บเหลี่ยมสเปคคำสั่งจะใช้ในการระบุตัวเลือกและน้อยกว่า / มากกว่านั้นใช้เพื่อระบุอาร์กิวเมนต์ ดังนั้น:
foo [-abs] [-t <bar>] <file> ...
foo [-abs] [-t bar] file ...
ให้-a
-b
และ-s
เป็นพารามิเตอร์ทางเลือกและfile
จำเป็นต้องมี
-t
เป็นตัวเลือก bar
แต่ถ้าระบุต้องใช้อาร์กิวเมนต์ที่จำเป็น จุดแสดงว่ามันสามารถใช้ไฟล์หลายไฟล์
นี่ไม่ใช่ข้อกำหนดที่แน่นอนและบ่อยครั้งman
หรือhelp
จำเป็นต้องมีเพื่อให้แน่ใจ
การกำหนดตำแหน่งของตัวเลือกอาร์กิวเมนต์และอินพุตสามารถผสมกันได้ แต่โดยทั่วไปแล้ววิธีที่ดีที่สุดคือการรักษาตำแหน่งตามแนวทางเนื่องจากบางระบบไม่จัดการการวางตำแหน่งของอาร์กิวเมนต์ที่หลากหลาย ตัวอย่างเช่น:
chmod -R nick 722 foo
chmod nick 722 foo -R
ทั้งสองทำงานในบางระบบในขณะที่ระบบไม่ทำงาน
ในคำสั่งที่แน่นอนพารามิเตอร์ทั้งหมดเป็นของfind
- ดังนั้นหากคุณสงสัยเกี่ยวกับคุณสมบัติman find
เป็นสถานที่ที่ถูกต้องในการค้นหา ในกรณีที่คุณจำเป็นต้องดู man pages สำหรับ shell และอื่น ๆ อาจเป็นเช่น:
find . $(some command)
find . `some command`
find . $some_var
find . -type f -exec some_command {} \;
find . -type f | some_command
...
-exec
เป็นคนพิเศษที่-exec some_command {} \;
มีพารามิเตอร์ทั้งหมดมอบให้กับfind
แต่some_command {} \;
ส่วนที่มีการขยายภายในเพื่อfind
some_command string_of_found_entity
เพิ่มเติมเกี่ยวกับ
- ข้อความ
- การขยาย
- การทดแทนคำสั่ง
- และอีกมากมาย
คุณอาจพบว่ามีประโยชน์นี้
type
คำสั่ง builtinfind
จะไม่ใช้-type
ตัวเลือกที่จะfind
ไม่ทำอย่างอื่น ดูhelp type
และman find
รับคำตอบของคุณ