ลิงก์สัญลักษณ์ / ซอฟต์คล้ายกับช็อตคัต / นามแฝงบนเดสก์ท็อปหรือไม่


19

ฟังดูแล้วว่าฉันชอบแนวคิดพื้นฐานของลิงค์ซอฟต์ / สัญลักษณ์เปรียบเทียบกับทางลัด (บนพีซี) หรือชื่อแทน (บน Mac) นั้นเป็นสิ่งเดียวกัน ฉันจะไปทางไหน? พวกเขาเหมือนกันหรือไม่

คำตอบ:


14

แนวคิดพื้นฐานเป็นเรื่องเดียวกัน ลิงก์สัญลักษณ์เป็นไฟล์พิเศษที่มีเส้นทาง (สัมพัทธ์หรือสัมบูรณ์) ไปยังวัตถุระบบไฟล์อื่น ใน UNIX / Linux ระบบปฏิบัติการจะประมวลผลลิงก์สัญลักษณ์เพื่อแก้ไขวัตถุจริงอย่างโปร่งใส

บน Macs นามแฝงดูเหมือนว่าจะเป็นตัวสร้าง Finder ที่พิเศษสามารถอ้างอิงวัตถุระยะไกลเช่นเดียวกับวัตถุในท้องถิ่น แต่ Finder จะแก้ไขการอ้างอิงไม่ใช่ OS MacOS X ยังมีลิงก์สัญลักษณ์ แต่แยกจากนามแฝง

ความแตกต่างที่สำคัญคือระหว่างทางลัด Windows และลิงก์สัญลักษณ์ ทางลัดของ Windows ไม่สามารถแทนที่โปรแกรมได้อย่างง่ายดายเพราะ Windows จะต้องมีนามสกุลไฟล์ที่น่ารำคาญเหล่านี้และไฟล์ "lnk" จะไม่สามารถใช้งานได้เมื่อมาถึง Windows ภายใน GUI มันใช้งานได้ แต่จากจุดยืนของเซิร์ฟเวอร์มัน barfs เหมือนกันกับไดเรกทอรี มันมีประโยชน์ แต่ไม่มีที่ใดก็ได้ใกล้กับพลังและความยืดหยุ่นของลิงก์สัญลักษณ์


"Same with a directory": คุณหมายถึงว่าไม่สามารถ cd ใน symlink ที่ชี้ไปยังไดเรกทอรีได้หรือไม่?
dash17291

2
หมายความว่าคุณไม่สามารถ cd ไปยังทางลัดบนระบบ Windows เนื่องจากเป็นโครงสร้าง Windows ไม่ใช่ DOS ด้วย UNIX / Linux มันเป็นระบบไฟล์ดังนั้นมันจะทำงานได้ทุกที่รวมถึงcdคำสั่ง - มันขึ้นอยู่กับคำสั่งในการตีความจุดสิ้นสุดไม่ใช่ระบบปฏิบัติการ ตัวอย่างเช่นcdสามารถใช้ symlink ไปยังไดเรกทอรี แต่มันจะล้มเหลวอย่างถูกต้องใน symlink ไปยังไฟล์ปกติ
Arcege

7

ไม่ได้จริงๆ มีความคล้ายคลึงกัน แต่มีเพียงจุดเดียว ฉันรู้จักผู้คนที่คิดว่า "โอเคซิมลิงค์เป็นทางลัด แต่ฉันไม่ค่อยเข้าใจพวกเขา" จนถึงตอนที่พวกเขาพูดว่า "โอ้จริงแล้วซิงก์นั้นไม่เหมือนทางลัดและตอนนี้ฉันเข้าใจพวกเขา" ดังนั้นฉันคิดว่าทางลัดไม่ใช่วิธีที่ดีในการทำความเข้าใจกับลิงก์สัญลักษณ์และฉันขอแนะนำให้คุณล้างใจการเปรียบเทียบกับทางลัด

ลิงก์สัญลักษณ์ระบุชื่อของไฟล์อื่น นั่นคือ "ชื่อ" ในเส้นทางแบบเต็มเช่นอาจรวมถึงส่วนไดเรกทอรีเช่นเดียวกับชื่อภายในไดเรกทอรี เส้นทางสามารถเป็นสัมบูรณ์ ( /foo/bar) หรือญาติ ( foo/barหรือ../barหรือเพียงbar); หากเป้าหมายถูกกำหนดโดยพา ธ สัมพัทธ์มันจะตีความสัมพันธ์กับไดเร็กทอรีที่มีลิงก์สัญลักษณ์ ไฟล์เป้าหมายอาจมีหรือไม่มีอยู่และการลบย้ายหรือสร้างไฟล์เป้าหมายจะไม่มีผลกับลิงค์สัญลักษณ์

การดำเนินการที่ทำหน้าที่เกี่ยวกับเนื้อหาของไฟล์ทำหน้าที่ในไฟล์เป้าหมาย ดังนั้นเมื่อคุณอ่านหรือเขียนไฟล์ผ่านลิงก์สัญลักษณ์หรือรันโปรแกรมผ่านลิงก์สัญลักษณ์นั่นเป็นราวกับว่าคุณกำลังเข้าถึงไฟล์เป้าหมาย การดำเนินการที่กระทำกับไฟล์จากภายนอกเช่นการเปลี่ยนชื่อหรือการลบจะทำหน้าที่ลิงก์สัญลักษณ์ โปรดทราบว่าสำหรับการเขียนมันสร้างความแตกต่างไม่ว่าคุณจะเขียนทับไฟล์ที่มีอยู่ (ซึ่งจะทำหน้าที่ตามเป้าหมาย) หรือลบไฟล์ที่มีอยู่และสร้างไฟล์ใหม่ (ซึ่งจะทำให้เป้าหมายเดิมไม่เสียหายและสร้างไฟล์ใหม่แทนที่ symlink แอปพลิเคชันจะติดตามลิงก์ (หลายอย่าง)


1
ลิงก์สัญลักษณ์ไม่ได้เป็นเส้นทางแบบเต็มเสมอไป: บนระบบ Slackware 13.1 ของฉัน, /usr/lib/libXv.so เป็นลิงก์สัญลักษณ์ไปยัง libXv.so.1.0.0 ไม่มีเส้นทางเต็ม
Bruce Ediger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.