ฉันต้องการที่จะเข้าใจความหมายของชื่อเต็มพา ธ ฉันมีไฟล์ในโฮมไดเร็กตอรี่ของฉันชื่อ my_script ฉันถือว่าชื่อพา ธ เต็มคือ. / my_script ซึ่งหมายความว่ามันอยู่ในโฟลเดอร์รูท แต่ฉันไม่แน่ใจ ใครบางคนช่วยให้ฉันรู้เรื่องนั้นได้ไหม
ฉันต้องการที่จะเข้าใจความหมายของชื่อเต็มพา ธ ฉันมีไฟล์ในโฮมไดเร็กตอรี่ของฉันชื่อ my_script ฉันถือว่าชื่อพา ธ เต็มคือ. / my_script ซึ่งหมายความว่ามันอยู่ในโฟลเดอร์รูท แต่ฉันไม่แน่ใจ ใครบางคนช่วยให้ฉันรู้เรื่องนั้นได้ไหม
คำตอบ:
ไม่ข้อสันนิษฐานของคุณผิด ชื่อเส้นทางแบบเต็มสำหรับไฟล์จากไดเรกทอรีบ้านของคุณเป็น:my_script
/home/your_user_name/my_script
เมื่อคุณพิมพ์./my_script
ใน terminal คุณจริงพยายามที่จะรันสคริปต์ (ถ้าเป็นปฏิบัติการ) /home/your_user_name/
และมันจะถูกดำเนินการเฉพาะในกรณีที่ไดเรกทอรีที่ทำงานปัจจุบันของคุณ /home/your_user_name/my_script
การรันสคริปต์ที่คุณยังสามารถใช้เส้นทางไฟล์เต็มซึ่งเป็นที่ผมกล่าวว่า
เป็นที่เชื่อกันว่าชื่อพา ธ UNIX มีลักษณะและความรู้สึกคล้ายกับที่อยู่อินเทอร์เน็ตจึงส่งผลให้เกิดความเข้ากันได้ ชื่อพา ธ เต็มของไดเร็กทอรีการทำงานปัจจุบันสามารถพบได้ในเทอร์มินัลโดยใช้คำสั่งต่อไปนี้:
pwd
หากต้องการค้นหาเส้นทางแบบเต็มสำหรับโฮมไดเรกทอรีผู้ใช้ของคุณคุณสามารถใช้:
echo ~
echo $HOME
echo /home/$USER
คำสั่งสามข้อข้างต้นเทียบเท่ากัน
หากต้องการค้นหาชื่อพา ธ เต็มของไฟล์คุณสามารถใช้readlink
คำสั่ง ตัวอย่างเช่นในกรณีของคุณ:
cd ~
readlink -f my_script
readlink
เผยเส้นทางที่แท้จริงของลิงก์
ชื่อพา ธ เต็มหมายถึงพา ธ เต็มไปยังไฟล์หรือโฟลเดอร์นั้นจาก/
ไดเรกทอรีของระบบไฟล์
ตัวอย่างเช่นเส้นทางแบบเต็มไปยังสคริปต์ของคุณคือ:
/home/your_username/my_script
หรือชื่อพา ธ เต็มไปยังgrep
ไฟล์ที่เรียกทำงานได้คือ
/bin/grep
สำหรับ./my_script
สัญลักษณ์นั้น.
หมายถึงไดเรกทอรีปัจจุบันดังนั้นจริงๆแล้วคุณพูดว่า "ดูภายใต้ไดเรกทอรีปัจจุบันสำหรับไฟล์หรือโฟลเดอร์ชื่อ my_script"
ในการทำความเข้าใจเส้นทางแบบเต็มคุณต้องทราบจุดเริ่มต้นก่อน
ไดเร็กทอรีรูท/
เป็นจุดเริ่มต้นของระบบปฏิบัติการที่ใช้ * nix มันมีไดเรกทอรีอื่น ๆ ทั้งหมดทั้งระบบและผู้ใช้
โฮมไดเร็กตอรี่ของผู้ใช้/home/USERNAME/
หรือ~/
ย่อมาจาก, มีไฟล์และไดเร็กตอรี่ของผู้ใช้. สำหรับภาพตัวอย่าง, ฟังเพลง, เอกสาร ฯลฯ แต่ละไดเรกทอรีเหล่านี้จะถูกอ้างอิงเป็นตัวอย่างเอกสารที่ตั้งอยู่ที่/home/USERNAME/DIRECTORY
/home/USERNAME/Documents
เช่นเดียวกับไดเรกทอรีไฟล์จะถูกอ้างอิงในลักษณะเดียวกันตัวอย่างเช่นไฟล์ที่มีชื่อmy_script
อยู่ที่โฮมไดเร็กทอรีของผู้ใช้sosytee
สามารถอ้างอิงได้โดยใช้พา ธ เต็ม/home/sosytee/my_script
หรือแบบ~/my_script
ย่อ
ทั้งไฟล์และไดเรกทอรีสามารถอ้างอิง / เข้าถึงโดยใช้พา ธ แบบเต็มจากทุกที่ในระบบ นอกจากนี้หนึ่งสามารถเข้าถึงได้โดยใช้ชื่อเท่านั้นหากอยู่ในไดเรกทอรีเดียวกัน ตัวอย่างเช่นหากผู้ใช้ที่~/
เมื่อใช้ terminal, เขาสามารถเข้าถึงไฟล์โดยใช้เพียงmy_script
my_script
นอกจากนี้หนึ่งสามารถเข้าถึงไดเรกทอรีและไฟล์โดยใช้ชื่อของพวกเขาเท่านั้นหากพวกเขาอยู่ที่ตัวแปร PATH ของเขา echo $PATH
คุณสามารถเห็นสิ่งที่อยู่ในเส้นทางของการจัดเก็บโดยใช้
ตัวอย่างง่ายๆเกี่ยวกับวิธีเข้าถึงไฟล์โดยใช้บรรทัดคำสั่ง:
/home/USERNAME/
และต้องการใช้cat
คำสั่งกับไฟล์ที่/home/USERNAME/Documents
ชื่อ foo.txt:cat Documents/foo.txt
ผู้ใช้อยู่ข้างใน~/Documents
และต้องการเรียกใช้สคริปต์ที่ระบุตำแหน่งfoo.sh
โฆษณา~/Scripts/Foo
:
sh ../Scripts/Foo/foo.sh
หรือ
sh ~/Scripts/Foo/foo.sh
โดยทั้งหมดหมายความว่านี่เป็นเพียงบทสรุป
ข้อมูลเพิ่มเติม
คู่มือ Bash สำหรับผู้เริ่มต้นโดย Machtelt Garrels
เพิ่มเติมเกี่ยวกับ PATH ที่นี่
เกี่ยวกับโครงสร้างไดเรกทอรี Unix
ชื่อเส้นทางแบบเต็มคือเส้นทางจากไดเรกทอรีราก (เช่น/
)
เป็นชื่อที่ทางญาติเพราะเส้นทางที่ค่อนข้างจะได้รับไปยังไดเรกทอรีปัจจุบันซึ่งมีการแสดงโดย./my_script
.
ดังนั้นหากคุณอยู่ในโฮมไดเร็กตอรี่ของคุณพา ธ เต็มคือ s.th /home/sosytee/my_script
เช่น สำหรับไดเรกทอรีบ้านของคุณมี "ทางลัด" ~
ซึ่งหมายความว่าคุณยังสามารถเขียน~/my_script
ได้ แต่แน่นอนว่าจะแก้ไขเส้นทางที่แตกต่างกันสำหรับผู้ใช้ทุกคน
pwd
หากต้องการดูเส้นทางแบบเต็มของการโทรไดเรกทอรีปัจจุบันของคุณ
ฉันถือว่าชื่อพา ธ เต็มคือ. / my_script
ไม่มันไม่ใช่. เส้นทางนั้นสัมพันธ์กัน จุดที่จุดเริ่มต้นบ่งชี้ถึงไดเรกทอรีปัจจุบัน:
$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory
อย่างที่คุณเห็นฉันเปลี่ยนไดเรกทอรีและmy_script
ไม่พบซึ่งหมายความว่า./my_script
ไม่ใช่เส้นทางที่แน่นอน
ฉันถือว่าชื่อพา ธ เต็มคือ. / my_script ซึ่งหมายความว่ามันอยู่ในโฟลเดอร์รูท แต่ฉันไม่แน่ใจ
จากวิกิพีเดีย :
[... ] เส้นทางแบบเต็มหรือเส้นทางแบบสัมบูรณ์คือเส้นทางที่ชี้ไปยังตำแหน่งเดียวกันบนระบบไฟล์เดียวโดยไม่คำนึงถึงไดเรกทอรีทำงานหรือเส้นทางรวม
เนื่องจากการ./my_script
ไม่เติมเงื่อนไขที่เมื่อใดก็ตามที่ฉันสามารถค้นหาmy_script
ไฟล์ได้เราควรอนุมานว่าเป็นเส้นทางสัมพัทธ์
ญาติเส้นทางคือเส้นทางที่สัมพันธ์กับไดเรกทอรีการทำงานของผู้ใช้หรือประยุกต์ใช้เพื่อให้เส้นทางสัมบูรณ์เต็มรูปแบบจะไม่ต้องได้รับ
ที่นี่ ... ฉันถือว่าคุณถามเพราะคุณติดตั้งเซิร์ฟเวอร์ Ubuntu บน windows ...
คัดลอกรหัสนี้ไปที่โฟลเดอร์ explorer ของคุณบน windows %userprofile%\AppData\Local\Packages
ที่จะแสดงตำแหน่งบ้าน ... มันซ่อนอยู่ที่ไหนสักแห่งในระบบของคุณ
ในโฟลเดอร์นี้คลิกสองครั้งที่โฟลเดอร์สำหรับการแจกจ่าย Linux ซึ่งมีไฟล์ที่คุณต้องการดู:
ชื่อของโฟลเดอร์เหล่านี้อาจมีการเปลี่ยนแปลงเล็กน้อยในอนาคต เพียงมองหาโฟลเดอร์ที่ตั้งชื่อตามการแจกจ่าย Linux
บ้านของคุณจะอยู่ภายใต้ LocalState\rootfs\home
ข้อมูลส่วนใหญ่ได้มาจากวิธีเข้าถึงไฟล์ Ubuntu Bash ของคุณใน Windows (และไดรฟ์ระบบ Windows ของคุณเป็น Bash)