การสร้างลิงก์สัญลักษณ์ไม่ได้อยู่ในไดเรกทอรีทำงาน


2

คำสั่งมักจะทำงานเหมือนมีเสน่ห์ แต่อันนี้ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/เพิ่งสร้างลิงค์ที่เสียหายที่แสดงเป็นไฟล์

ทำไมถึงเป็นอย่างนั้น?

แม้sudo ln -fsใช้งานไม่ได้

ข้อเสนอแนะวิธีการทำเช่นนั้น?

ขอบคุณล่วงหน้า.

คำตอบ:


4

แปลกเพราะอาจฟังดู

ln -si ../../../GIT/Settings/session ./.mozilla/firefox/foo.default/

จะทำในสิ่งที่คุณต้องการ กฎง่ายๆที่นี่คือคุณควรระบุเป้าหมายลิงก์ของคุณเทียบกับตำแหน่งที่คุณวางลิงค์

บนระบบไฟล์ Unix และ Unix like symbolic link เป็นไฟล์พิเศษที่มีเนื้อหาเป็นพา ธ พิมพ์ดีดสร้างการเชื่อมโยงสัญลักษณ์ที่ชื่อไฟล์ที่มีเนื้อหาเป็นเส้นทาง ตัวอย่างเช่นถ้าคุณพิมพ์ln path filename

ln foo bar/baz

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

ในทางกลับกันถ้าคุณพิมพ์

ln ../foo bar/baz

จากนั้นระบบของคุณจะสร้างลิงค์ชื่อ bar / baz ที่มีพา ธ "../foo" เมื่อเทียบกับลิงค์นี้เคอร์เนลของคุณจะค้นหา bar /../ foo ซึ่งมีอยู่ (และอันที่จริงแล้วคือสิ่งที่คุณต้องการ)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.