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

วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

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

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

ในการติดตั้ง ให้ใช้คำสั่งต่อไปนี้:

# For Debian/Ubuntu-based distro
sudo apt install symlinks
 
# For Fedora/CentOS
sudo dnf install symlinks

มีสองตัวเลือกหลักสำหรับ symlinks . นั่นคือ -d ซึ่งจะลบลิงค์ห้อยและ -r ซึ่งจะทำซ้ำตัวเลือกที่คุณระบุผ่านไดเร็กทอรีย่อย

คุณยังสามารถใช้ find . ในตัว เครื่องมือในลินุกซ์ นี่เป็นตัวอย่างที่ไม่ค่อยเป็นมิตรกับผู้ใช้ แต่ควรเรียนรู้คำสั่ง find และวิธีการทำงาน

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

touch test-file.txt
ln -s test-file.txt linked-file.txt

ดูได้ทาง ls คำสั่งว่าลิงค์นั้นมีอยู่

วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

ตอนนี้ ฉันจะทำลายการเชื่อมโยงนั้น

rm test-file.txt
วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

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

วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

วิธีแก้ไข symlink ที่เสียคือเพียงแค่ลบออก เป็นไปไม่ได้ที่จะนำมันกลับมา ดังนั้นคุณเพียงแค่ต้องล้างมันออกจากแผนผังไดเรกทอรีเสมือน

หากต้องการรายงานลิงก์เสียด้วย symlinks เครื่องมือ ใช้คำสั่งต่อไปนี้:

symlinks .

สังเกต “.” ระบุไดเร็กทอรีการทำงานปัจจุบัน เปลี่ยนสิ่งนี้สำหรับไดเร็กทอรีที่คุณพยายามค้นหา ผลลัพธ์อาจมีลักษณะดังนี้:

dangling: /home/jperkins/linked-file.txt -> test-file.txt

ระบุว่า “linked-file.txt” ห้อยอยู่และ symlink ขาด หากต้องการลบ ให้ใช้คำสั่งต่อไปนี้:

symlinks -d .

ผลลัพธ์จะดูคล้ายกับครั้งที่แล้ว แต่จะรวมบรรทัดสำหรับ “ลบแล้ว” ด้วย

วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

วิธีแก้ไข symlink ที่เสียด้วย find , ใช้คำสั่งต่อไปนี้:

find . -xtype l
วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

สังเกตอีกครั้งว่า “.” แทนไดเร็กทอรีการทำงานปัจจุบัน ซึ่งจะให้ผลลัพธ์ที่เป็นมิตรกับผู้ใช้น้อยลงแต่ก็ยังมีประโยชน์

และหากต้องการลบ ให้เพิ่ม delete ตัวเลือก

find . -xtype l -delete
วิธีค้นหา Symlinks ที่ใช้งานไม่ได้ใน Linux

คุณจะไม่ได้รับผลลัพธ์ใด ๆ สำหรับสิ่งนี้ แต่ถ้าคุณเรียกใช้อีกครั้งโดยไม่มี -delete คุณจะไม่พบอะไรเลย

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