คำสั่งมักจะทำงานเหมือนมีเสน่ห์ แต่อันนี้ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/
เพิ่งสร้างลิงค์ที่เสียหายที่แสดงเป็นไฟล์
ทำไมถึงเป็นอย่างนั้น?
แม้sudo ln -fs
ใช้งานไม่ได้
ข้อเสนอแนะวิธีการทำเช่นนั้น?
ขอบคุณล่วงหน้า.
คำสั่งมักจะทำงานเหมือนมีเสน่ห์ แต่อันนี้ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/
เพิ่งสร้างลิงค์ที่เสียหายที่แสดงเป็นไฟล์
ทำไมถึงเป็นอย่างนั้น?
แม้sudo ln -fs
ใช้งานไม่ได้
ข้อเสนอแนะวิธีการทำเช่นนั้น?
ขอบคุณล่วงหน้า.
คำตอบ:
แปลกเพราะอาจฟังดู
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 ซึ่งมีอยู่ (และอันที่จริงแล้วคือสิ่งที่คุณต้องการ)
คุณสามารถใช้พา ธ แบบเต็มของไฟล์ต้นทางและไฟล์เป้าหมาย
ln -s (full path to /foo) (full path to bar/baz)