นามแฝงและลิงก์ต่างกันอย่างไร


24

ฉันเห็นว่าขนาดของนามแฝงคือ 167.7kB ในขณะที่ลิงก์สัญลักษณ์เพียง 4kB

  • อะไรคือความแตกต่างระหว่างทั้งสองหรืออะไรคือจุดประสงค์ของพวกเขา?
  • อันไหนดีกว่ากัน? สำหรับกรณีที่ใช้ลิงค์ / นามแฝงในเครื่องหรือเครือข่ายเดียวเท่านั้น

ADDED

http://prosseek.blogspot.com/2012/12/symbolic-link-and-alias-in-mac.html

คำตอบ:


26

นามแฝงมีข้อมูลสองส่วน: ตัวระบุที่ไม่ซ้ำกันของไฟล์ที่ลิงก์ไปยังและพา ธ และชื่อไฟล์ของไฟล์ที่ลิงก์ไป

หากคุณเปลี่ยนชื่อหรือย้ายไฟล์จากนั้นสร้างไฟล์ใหม่ด้วยพา ธ และชื่อไฟล์ที่ไฟล์นั้นมีอยู่เดิมดังนั้นชื่อแทนใด ๆ ที่เชื่อมโยงกับไฟล์ต้นฉบับจะลิงก์ไปยังไฟล์ใหม่ทันที

อย่างไรก็ตามหากคุณเปลี่ยนชื่อหรือย้ายไฟล์โดยไม่ต้องแทนที่แล้วเรียกใช้นามแฝงนามแฝงจะได้รับการอัปเดตให้ชี้ไปที่พา ธ และชื่อไฟล์ใหม่โดยใช้ตัวระบุเฉพาะเพื่อทำเช่นนั้น

ในทางกลับกันลิงก์สัญลักษณ์ไม่มีตัวระบุเฉพาะไปยังไฟล์และจะปรากฏเป็นไม่สมบูรณ์หากไฟล์ถูกเปลี่ยนชื่อหรือย้ายและไม่แทนที่ด้วยไฟล์ที่มีพา ธ และชื่อไฟล์เดียวกัน

ทางเลือกของคุณควรขึ้นอยู่กับสถานการณ์ที่เหมาะสมกับคุณที่สุด


11
ความแตกต่างอีกอย่างคือเครื่องมือบรรทัดคำสั่ง (เช่นสิ่งใดก็ตามที่ใช้ Posix ไฟล์ API) จะไม่เข้าใจนามแฝงเพียงแค่ symlink ทั้งสองจะทำงานกับแอปพลิเคชัน GUI
Gordon Davisson

เมื่อฉันโพสต์ในโพสต์นี้ ( apple.stackexchange.com/questions/2992/ … ) ฉันพบว่าการทำงานอัตโนมัตินั้นไม่สามารถทำงานได้กับลิงก์ แต่มีชื่อแทน
prosseek

@sentinal คุณควรเพิ่มลิงก์ที่มีความยากเช่นกัน
user151019

1
ยวด Spotlight จะไม่จัดทำดัชนี symlink มันจะจัดทำดัชนีนามแฝง (แม้ว่าจะอยู่ในอันดับที่ต่ำกว่า)
ocodo

2

ฉันสับสนมากโดย Anwser create a new file with the path and filename that the file originally hadแมวมองบน ทำไมคุณถึงอยากทำเช่นนั้น?

ถ้าคุณเข้าใจว่าทำไมนามแฝงถึงทำงานโดยใช้ UID และพา ธ ไปยังไฟล์ (ในขณะที่ symlink ทำงานได้บนพา ธ เท่านั้น) คุณสามารถเข้าใจความแตกต่างและคำตอบที่ได้รับการโหวตอย่างง่ายขึ้น

บนระบบไฟล์ HFS และ HFS + แต่ละไฟล์และโฟลเดอร์มีตัวระบุที่ไม่ซ้ำกันและถาวร นามแฝงใช้เอกลักษณ์นี้พร้อมกับข้อมูลชื่อพา ธ เพื่อค้นหาไฟล์และโฟลเดอร์ในปริมาณเดียวกัน

เริ่มต้นด้วย Mac OS X 10.2 นามแฝงกลับลำดับการค้นหานี้โดยใช้ชื่อพา ธ ก่อนและตัวตนที่ไม่ซ้ำกันที่สอง ซึ่งหมายความว่าหากคุณย้ายไฟล์และแทนที่ด้วยไฟล์ที่มีชื่อเหมือนกันนามแฝงของไฟล์ต้นฉบับจะชี้ไปที่ไฟล์ใหม่ ในทำนองเดียวกันถ้าคุณย้ายไฟล์ในโวลุ่มเดียวกัน (โดยไม่ต้องแทนที่) นามแฝงจะใช้ข้อมูลระบุตัวตนที่ไม่ซ้ำกันเพื่อค้นหาไฟล์

เมื่อไฟล์หรือโฟลเดอร์ย้ายนามแฝงอาจอัปเดตข้อมูลเส้นทางหรือข้อมูลระบุตัวตนที่ไม่ซ้ำกันเพื่อพิจารณาการเปลี่ยนแปลง หากไฟล์ย้ายที่ใดที่หนึ่งในวอลุ่มเดียวกัน alias จะอัพเดตเร็กคอร์ดภายในด้วยข้อมูลพา ธ ใหม่สำหรับไฟล์ ในทำนองเดียวกันหากไฟล์ต้นฉบับถูกแทนที่ด้วยไฟล์ที่มีชื่อเหมือนกัน แต่เป็นเอกลักษณ์เฉพาะที่แตกต่างกัน alias จะอัปเดตระเบียนภายในด้วยข้อมูลเฉพาะตัวที่ไม่ซ้ำกันของไฟล์ใหม่ (ผลลัพธ์จากcreate a new file with the path and filename that the file originally had)

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

การอ้างอิง


1
สิ่งนี้ดูเหมือนจะเป็นความเห็นต่อคำตอบและไม่ใช่ความพยายามที่จะตอบคำถามของ OP คุณกรุณาอธิบายว่าโพสต์ของคุณตอบคำถามเดิมได้อย่างไร ดูวิธีการตอบสำหรับคำแนะนำในการเขียนคำตอบที่ดี - จากการรีวิว
fsb

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