Cách Tìm Và Xóa Symlink Bị Hỏng Trên Linux - TheFastCode

Fatmawati Achmad Zaenuri / Shutterstock [số 8]

Các liên kết tượng trưng trên Linux là một tính năng tuyệt vời, nhưng họ có thể bị phá vỡ và trái trỏ tại không có gì. Dưới đây là làm thế nào để xác định vị trí liên kết tượng trưng hỏng, xem xét lại, và loại bỏ chúng khỏi hệ thống của bạn nếu bạn cần.

Liên kết tượng trưng 101

liên kết tượng trưng [số 8] , Còn gọi là “liên kết mềm” và “liên kết tượng trưng,” là một hình thức của các phím tắt có thể trỏ đến tập tin và thư mục. Một liên kết tượng trưng trông giống như một tập tin hoặc thư mục thường xuyên trong một cửa sổ trình quản lý file. Nó cũng xuất hiện như một mục trong một danh sách tập tin trong một cửa sổ terminal. Các tập tin hoặc thư mục mà các điểm liên kết tượng trưng có thể ở bất cứ đâu trong cây hệ thống tập tin.

Ví dụ, giả sử bạn có một liên kết tượng trưng trong thư mục chính của bạn được gọi là “dave-link” trỏ đến một tập tin gọi là “text-file.txt” nằm ở một nơi khác trong cây hệ thống tập tin. Lệnh bạn sử dụng trên các liên kết tượng trưng sẽ được tự động áp dụng cho các tập tin mà nó trỏ. Nếu bạn cố gắng sử dụng con mèo hoặc ít hơn trên liên kết tượng trưng, ​​bạn sẽ thực sự thấy các nội dung của file “text-file.txt”.

Một cài đặt Linux chuẩn chứa nhiều liên kết tượng trưng. Thậm chí nếu bạn không tạo ra bất kỳ bản thân, hệ điều hành sử dụng chúng. thói quen cài đặt ứng dụng thường sử dụng liên kết tượng trưng để trỏ đến file thực thi. Khi phần mềm được cập nhật, các tập tin nhị phân được thay thế bằng phiên bản mới, và tất cả các liên kết tượng trưng tục làm việc như trước đây, miễn là tên tập tin mới là giống như cũ.

Chúng ta có thể dễ dàng nhận thấy một số liên kết tượng trưng bằng cách sử dụng ls. trong thư mục gốc. Một số mục được hiển thị trong một màu sắc khác nhau-on của chúng tôi Ubuntu 20.10 [số 8] máy kiểm tra, họ đang được hiển thị trong màu xanh nhạt.

Chúng tôi gõ như sau:

ls /

Chúng ta có thể có một cái nhìn sâu sắc hơn bằng cách sử dụng các -tất cả (Liệt kê dài) tùy chọn. Chúng tôi gõ lệnh sau đây để xem tất cả các mục “lib” và “bin” single entry:

ls -l / lib * / bin

Vào lúc bắt đầu của mỗi dòng là một “l”, mà chỉ mục là một liên kết tượng trưng. Các văn bản sau “- & gt;” chương trình vào những gì các liên kết tượng trưng trỏ. Trong ví dụ của chúng tôi, các mục tiêu này là tất cả các thư mục.

Các điều khoản được liệt kê như đọc, viết, và thực hiện cho các chủ sở hữu, nhóm, và những người khác. Đây là những mục giả mặc định. Họ không phản ánh các điều khoản thực tế trên các đối tượng mà tại đó các liên kết tượng trưng chỉ. Đó là các điều khoản trên các tập tin hoặc thư mục mục tiêu đó được ưu tiên và được vinh danh bởi hệ thống tập tin.

symlink bị phá vỡ

Một liên kết tượng trưng được chia (hoặc lủng lẳng bên trái) khi tập tin mà nó trỏ sẽ bị xóa hoặc di chuyển đến vị trí khác. Nếu thói quen gỡ bỏ một ứng dụng không hoạt động đúng cách, hoặc bị gián đoạn trước khi nó hoàn tất, bạn có thể bị bỏ lại với symlink bị phá vỡ.

Nếu ai đó bằng tay xóa một tập tin mà không biết liên kết tượng trưng điểm đến nó, những liên kết tượng trưng sẽ không còn hoạt động. Họ sẽ như biển báo giao thông trỏ đến một thị trấn đó là được san bằng.

Chúng ta có thể dễ dàng nhận thấy hành vi này sử dụng một symlink tên là “hello” trong thư mục hiện hành. Chúng tôi gõ như sau, sử dụng ls. để xem nó:

ls -l

Nó trỏ đến một chương trình gọi là “htg” trong một thư mục gọi là “bin”. Nếu chúng ta “chạy” các liên kết tượng trưng, ​​nó thực hiện các chương trình đối với chúng tôi:

./ chào

Bây giờ chúng ta có thể kiểm tra nếu điều này là những gì đang xảy ra bằng cách chạy chương trình trực tiếp:

../ bin / htg

Đúng như dự đoán, chúng tôi nhận được câu trả lời tương tự. Chúng ta hãy xóa các tập tin chương trình:

rm ../bin/htg

Bây giờ, khi chúng ta nhìn vào các liên kết tượng trưng, ​​chúng ta thấy nó được liệt kê trong màu đỏ vì Linux biết nó bị hỏng. Nó cũng cho chúng ta biết những gì nó được sử dụng đến thời điểm, vì vậy chúng tôi có thể thay thế các tập tin, biên dịch lại chương trình, hoặc làm bất cứ điều là cần thiết để sửa chữa các liên kết tượng trưng.

Lưu ý rằng nếu chúng ta cố gắng chạy các liên kết tượng trưng, ​​các lỗi chúng tôi nhận tài liệu tham khảo tên liên kết tượng trưng, ​​chứ không phải là tên của chương trình mà các điểm liên kết tượng trưng.

Chúng tôi gõ như sau:

./ chào

Tìm symlink hỏng

Hầu hết các phiên bản hiện đại của tìm thấy có xtype. (Loại mở rộng) tùy chọn, đơn giản hóa việc tìm kiếm các symlink bị hỏng [số 8] . Chúng tôi sẽ sử dụng. như l Cờ với xtype. , để nói với nó để tìm kiếm các liên kết. Sử dụng tìm thấy và xtype. như sau, mà không có bất kỳ ai khác kiểu Cờ, lực lượng. xtype. Để trả về các liên kết bị hỏng:

tìm. -xtpe L

Chạy lệnh trong thư mục nhà thử nghiệm của chúng tôi tìm thấy khá nhiều symlink bị hỏng. Lưu ý rằng tìm kiếm là đệ quy theo mặc định, vì vậy nó sẽ tự động tìm kiếm tất cả các thư mục con.

Symlink "Xin chào" Chúng tôi đã phá vỡ mục đích được liệt kê, như chúng tôi mong đợi. Một trong những symlinks khác có liên quan đến trình duyệt Firefox và phần còn lại được liên kết với Snaps.

Nếu chúng ta ống đầu ra thông qua làm việc với. -tất cả (LINE) tùy chọn, chúng ta có thể đếm các dòng, giống như tính các simroink bị hỏng.

Chúng tôi gõ như sau:

tìm. -xtpe L |. WC -L

Chúng tôi được thông báo rằng chúng tôi có 24 symlink bị hỏng trỏ đến không có gì.

Tìm, xem xét, rồi xóa

Trước khi bạn vội vàng vào và xóa tất cả các symlink bị hỏng, hãy xem qua kết quả của tìm thấy chỉ huy. Xem nếu có một lý do hợp lệ cho bất kỳ simroink nào bị hỏng.

Đôi khi, Symlink có thể là vấn đề, thay vì tệp đích. Nếu symlink được tạo không chính xác, nó có thể chỉ ra không có gì, nhưng mục tiêu thực sự có mặt. Tái tạo Symlink sẽ là sửa chữa trong trường hợp đó.

Cũng có thể một Symlink bị hỏng rõ ràng đang được sử dụng như một thứ khác, chẳng hạn như một chỉ báo của khóa tệp hoặc chỉ báo GO / không đi khác. Firefox làm điều này; Đó là những gì liên kết đầu tiên trong danh sách của chúng tôi là. Firefox không được sử dụng trên máy thử nghiệm của chúng tôi, vì vậy nó an toàn để chúng tôi xóa nó.

Cũng có thể mục tiêu chỉ có mặt định kỳ, và đây là hành vi dự kiến ​​(và mong muốn) của phần mềm cụ thể đó. Có thể tệp đích được sao chép từ một máy khác hoặc đám mây, nó thực hiện chức năng của nó và sau đó sẽ bị xóa lại, chỉ để được thay thế bởi một chương trình khác trong chu kỳ tiếp theo.

Symlink bị hỏng cũng có thể là một triệu chứng của việc cài đặt phần mềm không thành công. Trong trường hợp đó, thay vì xóa symlink, bạn nên khắc phục thủ công hoặc lặp lại cài đặt.

Khi bạn đã sửa các liên kết bị hỏng, bạn cần giữ, lặp lại lệnh để thực hiện tìm kiếm. Các symlinks cố định sau đó không có từ kết quả tìm kiếm.

Vì lợi ích cho sự an toàn, tốt nhất là hạn chế loại bỏ Symlink của bạn cho các thư mục của riêng bạn. Hãy cực kỳ cảnh giác khi chạy các lệnh này là root hoặc trên các thư mục hệ thống.

Loại bỏ các symlinks bị hỏng

Các -exec. Tùy chọn (thực thi) chạy các lệnh trên tìm thấy kết quả tìm kiếm. Chúng ta sẽ sử dụng rm. để xóa mỗi symlink bị hỏng. Các {} chuỗi được thay thế bằng tên của mỗi symlink bị hỏng vì mỗi người được phát hiện bởi tìm thấy .

Chúng ta phải sử dụng một dấu chấm phẩy ( Được; ) để chấm dứt danh sách các lệnh chúng tôi muốn -exec. chạy. Chúng ta sẽ sử dụng dấu gạch chéo ngược ( \ ) để "thoát khỏi" dấu chấm phẩy, vì vậy nó được coi là một phần của tìm thấy lệnh, chứ không phải là một cái gì đó Bash. nên hành động trên.

Chúng tôi gõ như sau:

tìm. -xtpe l -exec rm {} \;

Chúng tôi đã trở lại dấu nhắc lệnh mà không có dấu hiệu cho thấy bất cứ điều gì đã xảy ra. Để xác minh các liên kết bị hỏng đã bị xóa, chúng tôi lặp lại lệnh để tìm chúng, như sau:

tìm. -xtpe L

Không có bất kỳ kết quả phù hợp nào, có nghĩa là các symlink bị hỏng đã bị xóa.

Nhớ xem lại đầu tiên

Một lần nữa, hãy luôn dành thời gian để xem xét một danh sách các symlinks trước khi bạn chạy lệnh để xóa chúng. Bạn có thể tránh xóa bất kỳ bạn không chắc chắn bằng cách chạy lệnh để xóa chúng trong các thư mục thích hợp.

Ví dụ: ở trên, chúng ta có thể chạy lệnh trong thư mục ".snap", sau đó loại bỏ thủ công Symlink "Xin chào" đơn độc. Điều này sẽ khiến Symlink khóa Firefox bị ảnh hưởng.

Từ khóa » Symlink Là Gì