Boỏ link đường dẫn trong linux

Liên kết tượng trưng, ​​còn được gọi là liên kết tượng trưng, ​​là một loại tệp đặc biệt trỏ đến tệp hoặc thư mục khác. Nó giống như một phím tắt trong Windows. Một liên kết tượng trưng có thể trỏ đến một tệp hoặc một thư mục trên cùng hoặc một hệ thống tệp hoặc phân vùng khác.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xóa (xóa) các liên kết tượng trưng trong các hệ thống Linux / UNIX bằng cách sử dụng các lệnh rm , unlink find lệnh.

Trước khi bắt đầu

Để xóa liên kết tượng trưng, ​​bạn cần có quyền ghi trên thư mục chứa liên kết tượng trưng. Nếu không, bạn sẽ nhận được lỗi Hoạt động không được phép lỗi.

Khi bạn xóa một liên kết tượng trưng, ​​tệp mà nó trỏ đến không bị ảnh hưởng.

Sử dụng ls -l để kiểm tra xem một tệp đã cho có phải là một liên kết tượng trưng hay không và để tìm tệp hoặc thư mục mà liên kết tượng trưng trỏ tới.

ls -l /usr/bin/python

lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7

Ký tự đầu tiên Lv, chỉ ra rằng tệp là một liên kết tượng trưng. Biểu tượng - -> Hiển thị tệp mà các liên kết tượng trưng trỏ tới.

Lệnh rm loại bỏ các tập tin và thư mục đã cho.

Để xóa một liên kết tượng trưng, ​​gọi lệnh rm theo sau là tên liên kết tượng trưng làm đối số:

rm symlink_name

Khi thành công, lệnh thoát bằng 0 và không hiển thị đầu ra.

Với rm bạn có thể xóa nhiều hơn một liên kết tượng trưng cùng một lúc. Để làm điều đó, hãy chuyển tên của các liên kết tượng trưng làm đối số, được phân tách bằng dấu cách:

rm symlink1 symlink2

Để được nhắc trước khi xóa symlink, hãy sử dụng tùy chọn -i :

rm -i symlink_name

Để xác nhận loại y và nhấn Enter .

rm: remove symbolic link 'symlink_name'?

Nếu liên kết tượng trưng trỏ đến một thư mục, không thêm dấu gạch chéo / dấu ở cuối. Nếu không, bạn sẽ gặp lỗi:

rm symlink_to_dir/

rm: cannot remove 'symlink_to_dir/': Is a directory

Nếu tên của đối số kết thúc bằng / , lệnh rm giả định rằng tệp là một thư mục. Lỗi xảy ra bởi vì, khi được sử dụng mà không có tùy chọn -d hoặc -r , rm không thể xóa các thư mục.

Để ở bên an toàn, không bao giờ tùy chọn -r khi xóa liên kết tượng trưng bằng rm . Ví dụ: nếu bạn gõ:

rm -f symlink_to_dir/

Nội dung của thư mục đích sẽ bị xóa.

Lệnh unlink xóa một tệp đã cho. Không giống như rm , unlink chỉ chấp nhận một đối số duy nhất.

Để xóa một liên kết tượng trưng, ​​hãy chạy lệnh unlink theo sau là tên symlink làm đối số:

unlink symlink_name

Nếu lệnh thực thi thành công, nó sẽ không hiển thị đầu ra.

Không nối dấu gạch chéo / dấu ở cuối tên symlink vì unlink không thể xóa thư mục.

Tìm và xóa các liên kết tượng trưng bị hỏng

Để tìm tất cả các liên kết tượng trưng bị hỏng trong một thư mục nhất định, hãy chạy lệnh sau:

find /path/to/directory -xtype l

/path/to/directory/symlink1 /path/to/directory/subdir/symlink2

Lệnh sẽ liệt kê tất cả các liên kết bị hỏng trong thư mục và các thư mục con của nó.

find /path/to/directory -maxdepth 1 -xtype l

/path/to/directory/symlink1

Khi bạn tìm thấy các liên kết tượng trưng bị hỏng, bạn có thể xóa chúng bằng rm hoặc unlink theo cách thủ công hoặc sử dụng tùy chọn -delete của lệnh find :

find /path/to/directory -xtype l -delete

Phần kết luận

Để xóa liên kết tượng trưng, ​​sử dụng lệnh rm hoặc unlink theo sau là tên của liên kết tượng trưng làm đối số. Khi xóa một liên kết tượng trưng trỏ đến một thư mục không gắn dấu gạch chéo vào tên liên kết tượng trưng.

rm bỏ liên kết tìm thiết bị đầu cuối

Giới thiệu

  • Trong hệ thống file Linux, một liên kết (link) là một kết nối giữa file name và dữ liệu thực tế trên disk.
  • Có hai loại liên kết chính có thể được tạo: "hard" links, và "soft" hay symbolic links. Trước khi tìm hiểu về hard links và symbolic links, có một khái niệm khác cần hiểu rõ là “inode” - một khái niệm cơ bản trong Linux filesystem. Mỗi đối tượng của filesystem được đại diện bởi một inode.

1. Inode

  • Trong Linux, dữ liệu của các file được chia thành các block. Có nhiều cách tổ chức để liên kết các khối dữ liệu trong một file với nhau, một trong các cách đó là dùng chỉ mục (indexed allocation).

    Boỏ link đường dẫn trong linux

  • Lệnh tạo liên kết cứng như sau: ln [file nguồn] [file đích]

Boỏ link đường dẫn trong linux

  • 2 file viblo.txt và hardlink.txt có số inode giống nhau là 1326632. Xóa file viblo.txt thì nội dung của file hardlink.txt vẫn còn.

Boỏ link đường dẫn trong linux

  • Nội dung trong hardlink.txt vẫn còn vì khi xóa file viblo.txt hệ thống chỉ xóa đi số link count trong inode của file đi 1.
  • Khi sử dụng lệnh rm để xóa file thì làm giảm đi một hard link. Khi số lượng hard link giảm còn 0 thì không thể truy cập tới nội dung của file được nữa
  • Hầu hết người dùng không muốn tự tạo hoặc sửa đổi các hard links, nhưng các symbolic links là một công cụ hữu ích cho bất kỳ người dùng Linux nào.

  • Symbolic links là một file đặc biệt trỏ đến một file hoặc thư mục khác - được gọi là target. Khi được tạo, một symbolic links có thể được sử dụng thay cho target file. Nó có thể có một tên độc nhất, và được đặt trong bất kỳ thư mục nào. Nhiều symbolic links thậm chí có thể được tạo cho cùng một target file, cho phép truy cập target bằng nhiều tên khác nhau.

    Boỏ link đường dẫn trong linux

  • Symbolic link không chứa bản sao dữ liệu của target file. Nó tương tự như một shortcut trong Microsoft Windows: nếu bạn xóa một symbolic link, target sẽ không bị ảnh hưởng. Vì chỉ đơn thuần là một shortcut, symbolic link không dùng đến inode entry. Nó sẽ tạo ra một inode mới và nội dung của inode này trỏ đến tên tập tin gốc.

  • Ngoài ra, nếu target của một symbolic link bị xóa, di chuyển hoặc đổi tên, symbolic link không được cập nhật. Khi điều này xảy ra, liên kết tượng trưng được gọi là "broken" hoặc "orphaned" và sẽ không còn hoạt động như một liên kết.

  • Lệnh tạo liên kết tượng trưng như sau: ln -s [file nguồn] [file đích]

Boỏ link đường dẫn trong linux

  • 2 file viblo2.txt và softlink.txt có số inode khác nhau lần lượt là 1326634 và 1326630. Xóa file vibo2.txt thì nội dung của file softlink.txt sẽ không còn.

Boỏ link đường dẫn trong linux

  • Nội dung của softlink.txt không hiển thị được vì softlink.txt trỏ đến một tập tin khác, mà tập tin này không tồn tại.
Hard linksSymbolic links
Chỉ liên kết được tới file, không liên kết được tới thư mục Có thể liên kết được tới thư mục
Không tham chiếu được tới file trên ổ đĩa khác Có thể tham chiếu tới file/thư mục khác ổ đĩa
Liên kết tới một file vẫn còn ngay cả khi file đó đã được di chuyển Liên kết không còn tham chiếu được nữa nếu file được di chuyển
Được liên kết với inode tham chiếu vật lý trên ổ cứng nơi chứa file Liên kết tham chiếu tên file/thư mục trừu tượng mà không phải địa chỉ vật lý. Chúng được cung cấp inode riêng của mình
Có thể làm việc với mọi ứng dụng Một số ứng dụng không cho phép symbolic link

References

https://en.wikipedia.org/wiki/Inode

https://www.computerhope.com/issues/ch001638.htm

https://www.nixtutor.com/freebsd/understanding-symbolic-links/