Cách tìm các symlink bị hỏng trong Linux

Symbolic Link hay symlink (liên kết tượng trưng) ​​là một cách để đơn giản hóa việc quản lý hệ thống Linux. Điều này khá phổ biến trên các máy chủ hoặc máy trạm, nơi việc liên kết thư mục này với thư mục khác được sử dụng để các ứng dụng gửi thông tin đến một nơi khác trong cây thư mục mà không cần thay đổi cấu hình - điều cần thiết để duy trì một hệ thống khỏe mạnh.

Tuy nhiên, vấn đề với việc sử dụng symlink là không có gì đảm bảo rằng bạn sẽ luôn có cả hai thư mục trong liên kết đó. Sau đây, Quantrimang sẽ hướng dẫn bạn cách tìm và sửa các symlink bị hỏng trong Linux.

Các công cụ để sửa chữa các symlink bị hỏng

Có một ứng dụng vô cùng hữu ích được gọi đơn giản là symlinks trong hầu hết các kho ứng dụng. Đây là một tiện ích dòng lệnh đơn giản sẽ cung cấp đầu ra hữu ích và các tùy chọn để xóa những symlink bị hỏng đó.

Để cài đặt nó, hãy sử dụng các lệnh sau:

# Đối với bản phân phối dựa trên Debian/Ubuntu:

sudo apt install symlinks

# Đối với Fedora/CentOS:

sudo dnf install symlinks

Có một số tùy chọn chính cho symlinks. Đó là -d, sẽ xóa các dangling link và -r, sẽ thực hiện bất kỳ tùy chọn nào bạn chỉ định thông qua các thư mục con.

Bạn cũng có thể sử dụng công cụ find tích hợp sẵn trong Linux. Đây là một ví dụ ít thân thiện với người dùng hơn, nhưng sẽ hữu ích nếu bạn tìm hiểu lệnh find và cách hoạt động của nó.

Phá vỡ các symlinks

Đầu tiên, bài viết sẽ tạo một symlink. Điều này liên quan đến việc lấy một file hiện có và sử dụng lệnh ln để liên kết file đó với một file chưa tồn tại. Điều đó sẽ giống như ví dụ sau đây.

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

Bạn có thể thấy qua lệnh ls rằng liên kết tồn tại.

Liên kết tồn tại
Liên kết tồn tại

Bây giờ, bài viết sẽ phá vỡ symlink đó.

rm test-file.txt

Bạn có thể thấy rằng mặc dù file gốc đã bị xóa, lệnh ls -l vẫn báo cáo liên kết. Đây là nguyên nhân dẫn đến sự cố. Những file này có thể nằm trong các thư mục khác nhau, điều này khiến việc kiểm tra xem file gốc có còn ở đó hay không.

Lệnh ls -l vẫn báo cáo liên kết
Lệnh ls -l vẫn báo cáo liên kết

Tìm và sửa các symlink bị hỏng

Cách để sửa các symlink bị hỏng là chỉ cần xóa chúng. Không thể khôi phục symlink bị hỏng, vì vậy bạn chỉ cần xóa chúng khỏi cây thư mục ảo.

Để báo cáo các symlink bị hỏng bằng công cụ symlinks, ​​hãy sử dụng lệnh sau:

symlinks .

Lưu ý dấu “.” cho biết thư mục làm việc hiện tại. Thay đổi điều này cho bất kỳ thư mục nào bạn đang cố gắng tìm kiếm. Đầu ra có thể giống như sau:

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

Cho biết rằng “linked-file.txt” đang bị treo và symlink bị hỏng. Để xóa chúng, hãy sử dụng lệnh sau:

symlinks -d .

Đầu ra sẽ trông tương tự như lần trước nhưng bao gồm một dòng cho "deleted".

Đầu ra bao gồm một dòng cho "deleted"
Đầu ra bao gồm một dòng cho "deleted"

Để sửa các symlink bị hỏng với find, hãy sử dụng lệnh sau:

find . -xtype l
Sửa các symlink bị hỏng với find
Sửa các symlink bị hỏng với find

Lưu ý một lần nữa rằng dấu “.” đại diện cho thư mục làm việc hiện tại. Điều này sẽ tạo ra một đầu ra ít thân thiện với người dùng hơn nhưng vẫn hữu ích.

Và để xóa, hãy thêm tùy chọn delete.

find . -xtype l -delete
Thêm tùy chọn delete để xóa
Thêm tùy chọn delete để xóa

Bạn sẽ không nhận được bất kỳ đầu ra nào cho lệnh này, nhưng nếu bạn chạy lại nó mà không có tùy chọn -delete, bạn sẽ không thấy báo lỗi symlink bị hỏng nữa.

Thứ Sáu, 18/12/2020 08:07
51 👨 231
0 Bình luận
Sắp xếp theo