ในบทความต่อไปเราจะมาดูกัน วิธีค้นหาและลบ symlink ที่เสีย ใน Ubuntu ลิงก์สัญลักษณ์เป็นวิธีที่ช่วยลดความซับซ้อนในการจัดการระบบ Gnu / Linux สิ่งเหล่านี้ถูกใช้ทั้งบนเซิร์ฟเวอร์และเวิร์กสเตชันซึ่งการเชื่อมโยงจากไดเร็กทอรีหนึ่งไปยังอีกไดเร็กทอรีจะใช้สำหรับแอ็พพลิเคชันเพื่อส่งข้อมูลไปที่อื่นในแผนผังไดเร็กทอรี
Un ลิงก์สัญลักษณ์ บนระบบ Unix หรือ Gnu / Linux ระบุว่า การเข้าถึงไดเร็กทอรีหรือไฟล์ที่มีอยู่ซึ่งอยู่ในตำแหน่งอื่นภายในโครงสร้างไดเร็กทอรี. การแก้ไขโดยใช้ลิงก์นี้จะแสดงในต้นฉบับ แต่ในทางตรงกันข้ามหากลิงก์ถูกลบไฟล์หรือไดเร็กทอรีที่อ้างถึงจะไม่ถูกลบออก อีกทางเลือกหนึ่งที่พบได้น้อยคือการใช้ฮาร์ดลิงก์ (การเชื่อมโยงอย่างหนัก). ในกรณีนี้การลบลิงก์ทำให้เกิดการลบไฟล์หรือไดเร็กทอรีหากเป็นฮาร์ดลิงก์สุดท้ายไปยังไฟล์
ข้อดีของลิงก์สัญลักษณ์บนฮาร์ดลิงก์คือสามารถสร้างลิงก์สัญลักษณ์ที่ชี้ไปยังอ็อบเจ็กต์ในระบบไฟล์ที่พบบนอุปกรณ์อื่นหรือไปยังพาร์ติชันภายในอุปกรณ์เดียวกัน คำสั่งปกติใช้เพื่อจัดการลิงค์ (ทั้งรุนแรงและเป็นสัญลักษณ์) คือ ln.
Symlinks เครื่องมือในการจัดการลิงก์สัญลักษณ์
มีแอพพลิเคชั่นที่เรียกว่า ลิงก์เชื่อมโยง ในที่เก็บ Gnu / Linux ส่วนใหญ่ นี่คือยูทิลิตี้บรรทัดคำสั่งง่ายๆซึ่ง จะให้ผลลัพธ์และตัวเลือกที่เป็นประโยชน์ในการจัดการลิงก์สัญลักษณ์. ถึง ติดตั้งเครื่องมือนี้บน Ubuntuเราจะต้องเปิดเทอร์มินัลเท่านั้น (Ctrl + Alt + T) และดำเนินการคำสั่ง:
sudo apt install symlinks
ด้วย symlinks เราสามารถใช้ตัวเลือกต่างๆเพื่อทำงานกับลิงก์สัญลักษณ์ ในหมู่พวกเขาเราสามารถเน้นตัวเลือก -dซึ่งจะลบลิงก์ที่แขวนทิ้งไว้. สิ่งที่น่าสนใจอีกประการหนึ่งคือตัวเลือก -r ซึ่งจะทำซ้ำผ่านไดเรกทอรีย่อยตัวเลือกใด ๆ ที่เราระบุให้กับเครื่องมือนี้.
ตัวอย่างพื้นฐาน
เริ่มต้นด้วยตัวอย่างนี้ก่อนอื่นให้สร้างลิงก์สัญลักษณ์ เราสามารถทำได้โดยการ ไฟล์ที่มีอยู่และใช้คำสั่ง ln เพื่อเชื่อมโยงไปยังไฟล์ที่ยังไม่มีอยู่. คำสั่งในการสร้างตัวอย่างนี้จะเป็นดังต่อไปนี้:
touch archivo-ejemplo.txt ln -s archivo-ejemplo.txt link-archivo-ejemplo.txt
จากนั้นเราจะใช้คำสั่ง ls เพื่อตรวจสอบว่าลิงก์ที่เราเพิ่งสร้างนั้นมีอยู่แล้วในระบบของเรา
สิ่งต่อไปที่เราจะทำคือ ทำลาย symlink ที่เราเพิ่งสร้างขึ้น.
rm archivo-ejemplo.txt
แม้ว่าเราจะเพิ่งลบไฟล์ต้นฉบับไปแล้วดังที่คุณเห็นในภาพหน้าจอก่อนหน้านี้คำสั่ง ls -l ยังคงรายงานว่าลิงก์ยังอยู่ที่นั่น. นี่คือจุดที่เป็นปัญหาเนื่องจากลิงก์นี้จะติดอยู่ในไฟล์ที่ไม่มีอยู่แล้ว ไฟล์ในตัวอย่างนี้อาจอยู่ในไดเร็กทอรีที่แตกต่างกันซึ่งอาจทำให้ยากต่อการตรวจสอบว่าไฟล์ต้นฉบับยังอยู่หรือไม่
ค้นหาและซ่อมแซมลิงก์สัญลักษณ์ที่เสีย
วิธีแก้ไข symlink ที่เสียคือเพียงแค่ลบออก. มันเป็นไปไม่ได้ที่จะกู้คืนพวกเขาดังนั้นเราจะต้องการเท่านั้น ลบออกจากแผนผังไดเร็กทอรี.
ไปยัง ตรวจสอบ symlink ที่เสียให้ใช้เครื่องมือ symlinks. เราจะต้องใช้คำสั่งต่อไปนี้เท่านั้น:
symlinks .
สิ่งสำคัญคือต้องใส่ใจกับประเด็น (.) ในตอนท้ายของคำสั่งเนื่องจากระบุไดเร็กทอรีการทำงานปัจจุบัน สิ่งนี้สามารถเปลี่ยนแปลงได้ด้วย เส้นทางใด ๆ เพื่อระบุไดเร็กทอรีที่เราพยายามค้นหา. คำสั่งก่อนหน้านี้จะแสดงผลลัพธ์ดังต่อไปนี้:
บ่งบอกว่า 'ลิงค์ไฟล์ example.txt'ค้างอยู่และลิงก์สัญลักษณ์เสีย ในการกำจัดมันเราจะต้องใช้คำสั่งเดียวกับก่อนหน้านี้โดยเพิ่มตัวเลือก -d:
symlinks -d .
ผลลัพธ์ที่เทอร์มินัลจะส่งคืนจะแสดงสิ่งที่คล้ายกับครั้งล่าสุด แต่ คราวนี้มันจะรวมสาย 'ลบ'.
ต่อจากตัวอย่างก่อนหน้านี้หากเราไม่ได้ใช้คำสั่งสุดท้าย ในการค้นหาลิงก์สัญลักษณ์ที่ใช้งานไม่ได้เราสามารถใช้การค้นหาดังต่อไปนี้:
find . -xtype l
เช่นเดียวกับเครื่องมือ symlinks ระยะเวลา (.) แสดงถึงไดเร็กทอรีการทำงานปัจจุบัน สำหรับ ลบลิงก์สัญลักษณ์ที่ใช้งานไม่ได้เราจะต้องเพิ่มตัวเลือกเท่านั้น -ลบ ดังที่แสดงไว้ดังต่อไปนี้:
find . -xtype l -delete
คำสั่งนี้จะไม่แสดงผลลัพธ์ใด ๆ แต่ถ้าเราดำเนินการอีกครั้งโดยไม่มีตัวเลือก -ลบเราจะไม่เห็นอะไรบนหน้าจอ นี่จะเป็นการบ่งชี้ว่าลิงก์สัญลักษณ์ที่ใช้งานไม่ได้ถูกลบออกไปแล้ว
ถอนการติดตั้ง
ถอนการติดตั้ง symlinks มันง่ายเหมือนการติดตั้ง เราจะต้องเปิดเทอร์มินัลเท่านั้น (Ctrl + Alt + T) และดำเนินการคำสั่ง:
sudo apt remove symlinks
ด้วยขั้นตอนง่ายๆเหล่านี้ผู้ใช้ทุกคนสามารถทำได้ ค้นหา symlink ที่เสียได้อย่างง่ายดายและลบออกก่อนที่จะทำให้เกิดปัญหา.