กลับไปหน้าบทความ

อ่าน 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อื่น

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Dirname&oldid=1336332174 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ชื่อไดเร็กทอรี

dirname เป็น คำสั่ง เชลล์ สำหรับแยกส่วนของพาธ ไดเร็กทอรี โดย ไม่รวมนามสกุล คำสั่งนี้ระบุไว้ใน ข้อกำหนด Single UNIX Specification และใช้เป็นหลักใน สคริปต์ เชลล์

การใช้งาน

ข้อกำหนด มาตรฐานของ UNIX คือ: dirname path อาร์กิวเมนต์ที่จำเป็น path คือสตริงพาธไฟล์

ตัวอย่าง

คำสั่งนี้จะแสดงส่วนของพาธไดเร็กทอรีโดยไม่สนใจเครื่องหมายสแลชที่อยู่ท้ายสุด

ผลงาน

เนื่องจากคำสั่งนี้รับตัวถูกดำเนินการได้เพียงตัวเดียว การใช้งานภายใน ลูป ของสคริปต์เชลล์จึงอาจส่งผลเสียต่อประสิทธิภาพการทำงาน ลองพิจารณา: