ไม่สามารถ cd เป็นนามแฝงได้


22

ฉันมีสองนามแฝงในไดเรกทอรีบ้านของฉัน: และdevbootcamp bookshelfฉันสามารถcdเข้าไปdevbootcampแต่ไม่ใช่bookshelfแต่ฉันไม่แน่ใจว่าทำไม ฉันจำไม่ได้ว่าฉันทำนามแฝงอย่างไรdevbootcampแต่ฉันทำตามบทช่วยสอนนี้เพื่อสร้างbookshelfนามแฝง อย่างแปลกประหลาดใน terminal ของฉันdevbootcampเป็นสีม่วง แต่bookshelfไม่ใช่ ฉันจะทำให้มันใช้งานได้อย่างไร

ป้อนคำอธิบายรูปภาพที่นี่


2
สิ่งที่จะls -lแสดง
user151019

การเปิดใช้งาน cd'ing เป็น alias: จะไปยัง alias จาก terminal ได้อย่างไร?
klanomath

หากคุณต้องการเข้าถึงนามแฝงใน CLI เคล็ดลับนี้จะเป็นประโยชน์
z0nam

คำตอบ:


24

หากคุณพยายามที่จะcdเป็นนามแฝงมันจะไม่ทำงาน นี่คือการออกแบบโดยนามแฝงทำงานในระดับ Finder ไม่ใช่ระดับ UNIX พื้นฐาน

ผมได้คัดลอกมาบางแง่มุมที่สำคัญของชื่อแทน , การเชื่อมโยงสัญลักษณ์ (symlinks)และเชื่อมโยงอย่างหนักจากบทความ " อะไรคือนามแฝงเชื่อมโยงสัญลักษณ์และฮาร์ดลิงค์ใน Mac OS X? " ด้านล่าง


นามแฝง

ทางลัดประเภทนี้เก่าแก่ที่สุดสำหรับ Mac รากของมันกลับไปสู่ระบบ 7 ได้นามแฝงถูกสร้างและจัดการในระดับ Finder ซึ่งหมายความว่าหากคุณใช้ Terminal หรือแอปพลิเคชันที่ไม่ใช่ Mac เช่นแอป UNIX และยูทิลิตี้หลายตัว งาน. OS X ดูเหมือนว่าจะเห็นชื่อแทนว่าเป็นไฟล์ข้อมูลขนาดเล็กที่พวกเขาเป็น แต่มันไม่ทราบวิธีการตีความข้อมูลที่พวกเขามี

ลิงก์สัญลักษณ์

ทางลัดประเภทนี้เป็นส่วนหนึ่งของระบบไฟล์ UNIX และ Linux เนื่องจาก OS X สร้างอยู่ด้านบนของ UNIX จึงสนับสนุนการเชื่อมโยงสัญลักษณ์อย่างสมบูรณ์ ลิงก์สัญลักษณ์คล้ายกับนามแฝงเนื่องจากเป็นไฟล์ขนาดเล็กที่มีชื่อพา ธ ไปยังวัตถุดั้งเดิม แต่แตกต่างจากนามแฝงลิงค์สัญลักษณ์ไม่มีชื่อ inode ของวัตถุ หากคุณย้ายวัตถุไปยังตำแหน่งอื่นลิงก์สัญลักษณ์จะเสียหายและระบบจะไม่สามารถค้นหาวัตถุได้

ลิงค์ยาก

เช่นเดียวกับลิงก์เชิงสัญลักษณ์ฮาร์ดลิงก์เป็นส่วนหนึ่งของระบบไฟล์ UNIX ฮาร์ดลิงก์คือไฟล์ขนาดเล็กที่มีชื่อ inode ของไอเท็มดั้งเดิมเช่นชื่อแทน แต่แตกต่างจากชื่อแทนและลิงก์สัญลักษณ์ฮาร์ดลิงก์ไม่มีชื่อพา ธ ไปยังวัตถุดั้งเดิม โดยปกติแล้วคุณจะใช้ฮาร์ดลิงก์เมื่อคุณต้องการให้วัตถุไฟล์เดียวปรากฏในหลาย ๆ ที่ ไม่เหมือนกับนามแฝงและลิงก์สัญลักษณ์คุณไม่สามารถลบวัตถุฮาร์ดลิงก์เดิมออกจากระบบไฟล์โดยไม่ต้องลบฮาร์ดลิงก์ทั้งหมดไปก่อน

ทำงานได้ทั้งใน Terminal & Finder

เพียงสร้าง symlink ใน Terminal

ln -s <path to some folder> <destination of link>

ตัวอย่างเช่นบนเดสก์ท็อปของฉันฉันสร้าง symlink ไปยัง/Volumesโฟลเดอร์ของฉัน

ln -s /Volumes /Users/allan/Desktop/Volumes

บนเดสก์ท็อปของฉันฉันได้รับไอคอนนี้โดยอัตโนมัติ:

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถตั้งชื่ออื่น:

ln -s /Volumes /Users/allan/Desktop/Stuff

และโดยอัตโนมัติ ...

ป้อนคำอธิบายรูปภาพที่นี่


คำอธิบายที่ดี มันช่วยให้ฉันคิดได้อย่างเป็นนามธรรมln -s [what/dir] [to/where]
DaveWoodall.com
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.