อ่าน 2 นาที
ชื่อไดเร็กทอรี
dirname เป็น คำสั่ง เชลล์ สำหรับแยกส่วนของพาธ ไดเร็กทอรี โดย ไม่รวมนามสกุล คำสั่งนี้ระบุไว้ใน ข้อกำหนด Single UNIX Specification และใช้เป็นหลักใน สคริปต์ เชลล์
ชื่อไดเร็กทอรี
| ชื่อไดเร็กทอรี | |
|---|---|
| นักพัฒนา | นักพัฒนาซอฟต์แวร์โอเพนซอร์สและเชิงพาณิชย์หลายราย |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | ยูนิก , ระบบคล้ายยูนิก , ไอบีเอ็ม ไอ |
| แพลตฟอร์ม | ข้ามแพลตฟอร์ม |
| พิมพ์ | สั่งการ |
| ใบอนุญาต | coreutils : GPLv3+ |
dirnameเป็นคำสั่งเชลล์ สำหรับแยกส่วนของพาธไดเร็กทอรีโดยไม่รวมนามสกุล คำสั่งนี้ระบุไว้ในข้อกำหนด Single UNIX Specificationและใช้เป็นหลักในสคริปต์เชลล์
เวอร์ชันในGNU Core Utilitiesเขียนโดย David MacKenzie และ Jim Meyering [ 1 ]คำสั่งนี้มีให้ใช้งานสำหรับWindowsเป็นส่วนหนึ่งของโครงการGnuWin32 [ 2 ]และUnxUtils [ 3 ]และมีอยู่ในIBM i [ 4 ]
การใช้งาน
ข้อกำหนดมาตรฐานของ UNIXคือ: dirname pathอาร์กิวเมนต์ที่จำเป็นpathคือสตริงพาธไฟล์
ตัวอย่าง
คำสั่งนี้จะแสดงส่วนของพาธไดเร็กทอรีโดยไม่สนใจเครื่องหมายสแลชที่อยู่ท้ายสุด
$ dirname /path/to/filename.ext /path/to$ dirname /path/to/ /path$ dirname filename.ext .ผลงาน
เนื่องจากคำสั่งนี้รับตัวถูกดำเนินการได้เพียงตัวเดียว การใช้งานภายในลูปของสคริปต์เชลล์จึงอาจส่งผลเสียต่อประสิทธิภาพการทำงาน ลองพิจารณา:
ในขณะที่อ่านไฟล์ให้ทำซ้ำในไดเร็กทอรีชื่อ" $file " เสร็จสิ้น < some-input วิธีการข้างต้นทำให้มีการเรียกใช้กระบวนการแยกต่างหากสำหรับแต่ละบรรทัดของข้อมูลเข้า ด้วยเหตุนี้จึงมักใช้การแทนที่เชลล์แทน:
echo " ${ file %/* } " ;หรือหากจำเป็นต้องจัดการกับพาธแบบสัมพัทธ์ด้วย:
ถ้า[ -n " ${ ไฟล์##*/* } " ] ; แล้วให้แสดง"." มิฉะนั้นให้แสดง" ${ ไฟล์%/* } " ; fiโปรดทราบว่าวิธีการเหล่านี้จัดการกับเครื่องหมายทับท้ายแตกต่างจากวิธีdirnameอื่น
ดูเพิ่มเติม
- basename – คำสั่งเชลล์สำหรับแยกนามสกุลจากพาธ
- รายการคำสั่ง POSIX
ลิงก์ภายนอก
- : คืนค่าส่วนของไดเร็กทอรีจากพาธเนม – เอกสารอ้างอิงเชลล์และยูทิลิตี้, ข้อกำหนดยูนิกซ์ฉบับเดียว , เวอร์ชัน 5 จากThe Open Group
- – คู่มือคำสั่งผู้ใช้Linux
- – คู่มือคำสั่งทั่วไปของ OpenBSD
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ชื่อไดเร็กทอรี
dirname เป็น คำสั่ง เชลล์ สำหรับแยกส่วนของพาธ ไดเร็กทอรี โดย ไม่รวมนามสกุล คำสั่งนี้ระบุไว้ใน ข้อกำหนด Single UNIX Specification และใช้เป็นหลักใน สคริปต์ เชลล์
การใช้งาน
ข้อกำหนด มาตรฐานของ UNIX คือ: dirname path อาร์กิวเมนต์ที่จำเป็น path คือสตริงพาธไฟล์
ตัวอย่าง
คำสั่งนี้จะแสดงส่วนของพาธไดเร็กทอรีโดยไม่สนใจเครื่องหมายสแลชที่อยู่ท้ายสุด
ผลงาน
เนื่องจากคำสั่งนี้รับตัวถูกดำเนินการได้เพียงตัวเดียว การใช้งานภายใน ลูป ของสคริปต์เชลล์จึงอาจส่งผลเสียต่อประสิทธิภาพการทำงาน ลองพิจารณา: