Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีจัดการ Symlinks ใน Linux

วิธีจัดการ Symlinks ใน Linux

Symlinks คือไฟล์ที่เชื่อมโยงโดยตรงกับไฟล์อื่น ในระบบ Linux ลิงก์สัญลักษณ์ทำหน้าที่เป็นทางลัด

คำว่า "symlink" เป็นคำที่คล้ายกันของ "symbolic" และ "link" ซึ่งเน้นย้ำถึงประโยชน์ของไฟล์ต่างๆ เช่น การอ้างอิงเชิงสัญลักษณ์ไปยังสิ่งอื่น

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

การใช้งาน Symlinks

การเปลี่ยนโครงสร้างพื้นฐานของระบบไฟล์สำหรับแอปพลิเคชันเดียวเพื่อให้ทำงานได้อย่างมีประสิทธิภาพมากขึ้นจะเป็นงานที่น่าเบื่อ แทนที่จะใช้ symlink เพื่อทำให้เรื่องง่ายขึ้นและสร้างลำดับชั้นของไฟล์เทียมสำหรับโปรแกรมที่จะอ้างอิงโดยไม่กระทบต่อตำแหน่งของไฟล์ต้นฉบับ

การใช้ symlink ทำให้รองรับโปรแกรมต่างๆ ได้ง่ายขึ้น แต่ยังทำให้การวิเคราะห์ระบบไฟล์มีความซับซ้อนอีกด้วย

ปัญหาเกี่ยวกับ Symlinks

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

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

โดยเฉพาะอย่างยิ่ง การโยงลิงก์สามารถนำไปสู่ลิงก์แบบวนซ้ำ (ลิงก์วนซ้ำที่มีความยาวไม่สิ้นสุด) หากลิงก์อ้างอิงถึงลิงก์ที่สองซึ่งในทางกลับกันจะชี้กลับไปที่ลิงก์แรก

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

การจัดการซิมลิงก์

ในระบบลีนุกซ์ มียูทิลิตีมากมายที่พร้อมสำหรับจัดการ symlink. การรวมเริ่มต้นใน coreutils คือ ln ซึ่งอำนวยความสะดวกในการสร้างลิงก์ดังกล่าวจากเทอร์มินัล

อย่างไรก็ตาม เพื่อจัดการลิงก์สัญลักษณ์อย่างสมบูรณ์ คุณจะต้องสามารถค้นหาและวิเคราะห์ได้อย่างรวดเร็ว ตัวเลือกบรรทัดคำสั่งง่ายๆ ที่ควรค่าแก่การพิจารณาเพื่อจุดประสงค์นี้มีชื่อว่า symlinks .

แม้ว่าลินุกซ์ distros บางตัวเช่น Fedora จะมาพร้อมกับเครื่องมือนี้ที่ติดตั้งโดยค่าเริ่มต้น แต่ตัวอื่น ๆ เช่น Ubuntu ก็ทำไม่ได้ ในการติดตั้ง “Symlinks” ใน Ubuntu เพียงเปิดหน้าต่างเทอร์มินัลแล้วป้อนข้อมูลต่อไปนี้:

sudo apt install symlinks
วิธีจัดการ Symlinks ใน Linux

การสร้าง Symlinks

การสร้าง symlink จากเทอร์มินัลของคุณนั้นง่ายใน Linux ป้อนรหัสที่ตามมา โดยเปลี่ยน “original-file.txt” เป็นชื่อและนามสกุลไฟล์ของเป้าหมายที่คุณเลือก จากนั้นเปลี่ยน “linkname” เป็นสิ่งที่คุณต้องการให้เป็น

ln -s original-file.txt linkname
วิธีจัดการ Symlinks ใน Linux

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

ลิงก์สัญลักษณ์สัมพัทธ์สามารถสร้างได้โดยการเพิ่ม -r ให้เป็นคำสั่งเดียวกันดังนี้:

ln -rs original-file.txt linkname
วิธีจัดการ Symlinks ใน Linux

ลิงก์สัมพัทธ์ยังคงใช้งานได้โดยไม่คำนึงถึงการเปลี่ยนแปลงในจุดเชื่อมต่อ

การค้นหาซิมลิงก์

ยูทิลิตี Symlinks ที่กล่าวถึงข้างต้นทำให้เรามีวิธีง่ายๆ ในการค้นหาลิงก์สัญลักษณ์ในไดเร็กทอรีที่กำหนด คำสั่งสำหรับสิ่งนี้มีดังนี้:(เปลี่ยน “ชื่อไดเรกทอรี” เป็นเส้นทางแบบเต็มไปยังไดเรกทอรีที่คุณต้องการค้นหา)

symlinks -v directory-name
วิธีจัดการ Symlinks ใน Linux

การเพิ่ม r คำสั่งนี้บอกให้ Symlinks ตรวจสอบไฟล์ซ้ำๆ ภายในไดเร็กทอรีที่ระบุ มีลักษณะดังนี้:

symlinks -rv directory-name
วิธีจัดการ Symlinks ใน Linux

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

เวอร์ชันที่ไม่เรียกซ้ำของคำสั่งที่แสดงด้านบนจะแสดงลิงก์แบบวนซ้ำที่มีอยู่ว่า "ห้อยต่องแต่ง" หรือกล่าวอีกนัยหนึ่งคือใช้งานไม่ได้ เป็นการวิเคราะห์ว่าเครื่องมือ Symlinks มีความสามารถในการแก้ไขลิงก์ที่เสียดังกล่าวได้จริง

แก้ไขซิมลิงค์

การแก้ไขลิงก์สัญลักษณ์ในไดเร็กทอรีที่กำหนดนั้นค่อนข้างตรงไปตรงมากับ Symlinks นี่คือคำสั่งที่จะใช้:

symlinks -cds directory-name
วิธีจัดการ Symlinks ใน Linux

คำสั่งด้านบนทำหลายอย่างพร้อมกัน โดยจะแปลงลิงก์แบบสัมบูรณ์ที่พบเป็นลิงก์ที่เกี่ยวข้อง ลบลิงก์ที่ห้อยอยู่ออก และลดลิงก์ที่ "ยาว" (ลิงก์ที่มี "../" จำนวนมากในเส้นทาง)

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

symlinks -t directory-name
วิธีจัดการ Symlinks ใน Linux

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