Symbolic Links หรือ symlink เป็นวิธีที่ทำให้การจัดการระบบ Linux ของคุณง่ายขึ้น ซึ่งเป็นเรื่องปกติในเซิร์ฟเวอร์หรือเวิร์กสเตชัน ซึ่งการเชื่อมโยงไดเร็กทอรีหนึ่งไปยังไดเร็กทอรีอื่นจะใช้เพื่อให้แอปพลิเคชันส่งข้อมูลไปยังที่อื่นในแผนผังไดเร็กทอรีโดยไม่ต้องเปลี่ยนการกำหนดค่า ซึ่งจำเป็นสำหรับการรักษาระบบที่แข็งแรง อย่างไรก็ตาม ปัญหาในการใช้ symlink คือไม่มีการรับประกันว่าคุณจะมีทั้งสองไดเร็กทอรีในลิงก์นั้นเสมอ ที่นี่เราจะแสดงวิธีค้นหาและแก้ไข symlink ที่ใช้งานไม่ได้ใน Linux
เครื่องมือในการแก้ไข Symlink ที่ใช้งานไม่ได้
มีแอปพลิเคชันที่มีประโยชน์อย่างเหลือเชื่อที่เรียกว่าsymlinks
ในที่เก็บส่วนใหญ่ เป็นยูทิลิตีบรรทัดคำสั่งง่ายๆ ที่จะให้ผลลัพธ์ที่เป็นประโยชน์และตัวเลือกสำหรับการลบ symlink ที่เสียหายเหมือนกัน
ในการติดตั้ง ให้ใช้คำสั่งต่อไปนี้:
# For Debian/Ubuntu-based distro sudo apt install symlinks # For Fedora/CentOS sudo dnf install symlinks
มีสองตัวเลือกหลักสำหรับ symlinks
. นั่นคือ -d
ซึ่งจะลบลิงค์ห้อยและ -r
ซึ่งจะทำซ้ำตัวเลือกที่คุณระบุผ่านไดเร็กทอรีย่อย
คุณยังสามารถใช้ find
. ในตัว เครื่องมือในลินุกซ์ นี่เป็นตัวอย่างที่ไม่ค่อยเป็นมิตรกับผู้ใช้ แต่ควรเรียนรู้คำสั่ง find และวิธีการทำงาน
การทำลาย Symlinks
ขั้นแรก ฉันจะสร้างลิงก์สัญลักษณ์ ซึ่งเกี่ยวข้องกับการนำไฟล์ที่มีอยู่แล้วไปใช้ ln
คำสั่งเชื่อมโยงไปยังไฟล์ที่ยังไม่มี นั่นน่าจะเป็นตัวอย่างต่อไปนี้สำหรับฉัน
touch test-file.txt ln -s test-file.txt linked-file.txt
ดูได้ทาง ls
คำสั่งว่าลิงค์นั้นมีอยู่
ตอนนี้ ฉันจะทำลายการเชื่อมโยงนั้น
rm test-file.txt
คุณจะเห็นได้ว่าแม้ว่าฉันจะลบไฟล์ต้นฉบับแล้ว ls -l
คำสั่งยังคงรายงานการเชื่อมโยง นี่คือที่มาของปัญหา ไฟล์เหล่านี้อาจอยู่ในไดเร็กทอรีที่แตกต่างกัน ซึ่งทำให้ยากต่อการตรวจสอบว่าไฟล์ต้นฉบับยังคงอยู่หรือไม่
การค้นหาและแก้ไข Symlink ที่ใช้งานไม่ได้
วิธีแก้ไข symlink ที่เสียคือเพียงแค่ลบออก เป็นไปไม่ได้ที่จะนำมันกลับมา ดังนั้นคุณเพียงแค่ต้องล้างมันออกจากแผนผังไดเรกทอรีเสมือน
หากต้องการรายงานลิงก์เสียด้วย symlinks
เครื่องมือ ใช้คำสั่งต่อไปนี้:
symlinks .
สังเกต “.” ระบุไดเร็กทอรีการทำงานปัจจุบัน เปลี่ยนสิ่งนี้สำหรับไดเร็กทอรีที่คุณพยายามค้นหา ผลลัพธ์อาจมีลักษณะดังนี้:
dangling: /home/jperkins/linked-file.txt -> test-file.txt
ระบุว่า “linked-file.txt” ห้อยอยู่และ symlink ขาด หากต้องการลบ ให้ใช้คำสั่งต่อไปนี้:
symlinks -d .
ผลลัพธ์จะดูคล้ายกับครั้งที่แล้ว แต่จะรวมบรรทัดสำหรับ “ลบแล้ว” ด้วย
วิธีแก้ไข symlink ที่เสียด้วย find
, ใช้คำสั่งต่อไปนี้:
find . -xtype l
สังเกตอีกครั้งว่า “.” แทนไดเร็กทอรีการทำงานปัจจุบัน ซึ่งจะให้ผลลัพธ์ที่เป็นมิตรกับผู้ใช้น้อยลงแต่ก็ยังมีประโยชน์
และหากต้องการลบ ให้เพิ่ม delete
ตัวเลือก
find . -xtype l -delete
คุณจะไม่ได้รับผลลัพธ์ใด ๆ สำหรับสิ่งนี้ แต่ถ้าคุณเรียกใช้อีกครั้งโดยไม่มี -delete
คุณจะไม่พบอะไรเลย
แค่นั้นแหละ. ตอนนี้คุณสามารถค้นหาลิงก์ที่เสียและลบออกได้อย่างง่ายดายก่อนที่จะเกิดปัญหาขึ้น มีบทช่วยสอนเพิ่มเติมเกี่ยวกับลิงก์เชื่อมโยงที่คุณควรตรวจสอบ คุณยังสามารถเรียนรู้เพิ่มเติมเกี่ยวกับความแตกต่างระหว่าง symlink และฮาร์ดลิงก์ และเวลาที่คุณควรใช้