ฉันใช้realpath
คำสั่ง แต่มันจะเพิ่มอินพุตดั้งเดิมที่ส่วนท้ายของเส้นทางเสมอ:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
ฉันใช้realpath
คำสั่ง แต่มันจะเพิ่มอินพุตดั้งเดิมที่ส่วนท้ายของเส้นทางเสมอ:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
คำตอบ:
คุณให้realpath
เส้นทางสัมพัทธ์กับไฟล์ในไดเรกทอรีปัจจุบัน
ไฟล์ (ซึ่งอาจเป็นไดเรกทอรี) อาจมีหรือไม่มีอยู่ realpath
ไม่สนใจโดยค่าเริ่มต้น มันรายงานเส้นทางโดยไม่คำนึงว่าองค์ประกอบสุดท้ายของมันมีอยู่
หากคุณต้องการให้เส้นทางรายงานที่มีอยู่เท่านั้นใช้-e
แฟล็ก:
zanna@toaster:~/playground$ realpath playground
/home/zanna/playground/playground
zanna@toaster:~/playground$ realpath ~/playground
/home/zanna/playground
zanna@toaster:~/playground$ realpath -e playground
realpath: playground: No such file or directory
นั่นเป็นเพราะคุณให้เส้นทางที่ไม่มีอยู่ดังนั้นจึงพิมพ์ไดเรกทอรีปัจจุบันและสิ่งที่คุณให้โดยสมมติว่าเป็นเส้นทาง โปรดทราบว่าหน้าคนระบุว่า:
พิมพ์ชื่อไฟล์ที่แน่นอนที่ได้รับการแก้ไข ทั้งหมดยกเว้นองค์ประกอบสุดท้ายจะต้องมีอยู่
ดังนั้นจึงช่วยให้การดำเนินการกับเป้าหมายที่ไม่มีอยู่ เพื่ออธิบายให้พิจารณาตัวอย่างเหล่านี้:
$ pwd
/home
$ ls
lost+found terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
หรือเพื่อทำซ้ำสิ่งที่คุณทำ:
$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
ไม่มีก็เพียง แต่บอกคุณว่าเส้นทางไปยัง (อาจไม่มีอยู่จริง) ไฟล์yosefkl
อยู่ในไดเรกทอรีปัจจุบัน ( /homes/yosefkl
) /homes/yosefkl/yosefkl
เป็น ลอง
realpath "$PWD"
realpath .