Tin học
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Tạo file liên kết tắt trên Linux

Go down

Tạo file liên kết tắt trên Linux Empty Tạo file liên kết tắt trên Linux

Bài gửi  lethaibaochau 12/5/2009, 12:42

- Liên kết tắt cứng sẽ tạo ra một file trỏ đến cùng mục nhập i-node của file vật lý trên đĩa. Và do đó file vật lý trên đĩa chỉ thật sự bị xóa khi tất cả các liên kết cứng đã bị xóa cùng với bản thân file.

- Liên kết tắt mềm chỉ chứa các thông tin trỏ đến file vật lý. File liên kết mềm không tham chiếu trực tiếp đến điểm nhập i-node của file vật lý mà nó trỏ đến. Nếu bạn xóa file vật lý ban đầu đi thì file liên kết mềm sẽ không biết đường tham chiếu đến file gốc ban đầu nữa. Tuy nhiên một khi bạn tạo lại file gốc vật lý thì file liên kết mềm vẫn tiếp tục có hiệu lực.

Lệnh ln không tham số sẽ tạo liên kết tắt cứng trong khi với tùy chọn -s thì lệnh ln sẽ tạo liên kết tắt mềm.

1. Liên kết tắt mềm

Trước hết chúng ta hãy tạo liên kết tắt mềm. Bạn tạo file vnexperts trỏ đến thư mục /bin như sau: $ ln -s /bin vnexperts
Bạn dùng lệnh ls -l để xem lệnh ln của Linux đã tạo ra vnexperts như thế nào:
$ ls -l vnexperts

Ở đây ta thấy thêm một số thông tin mới. Cờ chỉ đặc tính file trước đây là chữ d (chỉ thư mục) hoặc - (chỉ file) giờ được thay thế bằng chữ l cho biết đây là file liên kết. Ở cột cuối cùng bên phải bạn thấy thông tin vnexperts -> /bin cho biết tên file liên kết là vnexperts đang trỏ đến thư mục /bin.

Bây giờ nếu bạn tác động đến vnexperts cũng tương tự như bạn tác động vào thư mục /bin. Chẳng hạn bạn có thể chuyển vào thư mục vnexperts và dùng lệnh ls bạn sẽ thấy tất cả nội dung của thư mục /bin. Sao chép, di chuyển, xóa file trong thư mục vnexperts cũng đồng nghĩa với thay đổi nội dung của thư mục /bin. Tuy nhiên nếu bạn xóa vnexperts thì không có nghĩa là thư mục /bin bị xóa. Chỉ có liên kết mềm bị xóa đi thôi: Mặc dù vậy nếu bạn xóa thư mục /bin thì coi như vnexperts mất liên kết. Mọi thao tác trên vnexperts sẽ không còn ý nghĩa nữa trừ khi bạn tạo lại thư mục /bin.

2. Liên kết tắt cứng

tìm hiểu liên kết tắt cứng chi tiết hơn. Như đã nêu, liên kết tắt cứng sẽ tạo ra file mới trỏ đến cùng mục nhập i-node của file vật lý ban đầu. Lúc này file liên kết tắt cứng mới sẽ đồng đẳng với file vật lý ban đầu. Nếu bạn xóa file vật lý ban đầu thì dữ liệu vẫn không bị mất, bởi vì nó đang còn có thể tham chiếu đến bởi liên kết tắt cứng khác. Khi không còn liên kết cứng nào tham chiếu đến i-node nữa thì dữ liệu của file mới bị xóa khỏi đĩa.

Trước hết chúng ta hãy tạo ra file vật lý thứ nhất mang tên vne như sau:
$ cat > file_vne.
Chúng ta hãy tạo tiếp file liên kết cứng file_vne1 trỏ đến file­_vne như sau:
$ ln file_vne file_vne1
Bạn dùng lệnh ls-l để xem lệnh ln của Linux đã tạo ra file_vne1 như thế nào:
$ ls -l file_vne*

Như bạn thấy thông tin mà lệnh ls hiển thị sau khi tạo ra liên kết tắt cứng file_vne1 hoàn toàn tương đương với file_vne. Một số điểm bạn cần chú ý ở đây:

- Đối với liên kết tắt cứng, đặc tính đầu tiên của file không có ký tự nhận dạng l cho bạn biết đây là file liên kết tắt như liên kết tắt mềm.

- Cột thông tin thứ 2 như bạn thấy đối với file_vne, trước khi tạo liên kết là 1 nay tăng lên 2. Căn cứ vào đây bạn sẽ biết được file_vne hiện có 2 liên kết cứng (bản thân tên file_vne cũng được xem là một liên kết tắt cứng). Bạn không thể biết được rằng liệu file_vne1 và file_vne có tham chiếu đến cùng dữ liệu hay không trừ khi xem qua nội dung của chúng.

- Ngoại trừ giá trị tham chiếu tăng lên 2 còn file_vne1 tựa như được sao chép thành một bản khác từ file_vne. Kích thước của file_vne1 và file_vne hoàn toàn như nhau là 44 bytes. Mặc dù tổng cộng trên đĩa bạn chỉ lưu đúng một khối dữ liệu 44 bytes chứ không phải 44x2=88 bytes.

- Nếu bạn thay đổi nội dung file_vne thì nội dung của file_vne1 cũng thay đổi theo bởi vì nó trỏ đến cùng khối dữ liệu 44 bytes mà file_vne chỉnh sửa.

- Nếu bạn xóa file_vne đi thì file_vne1 vẫn đọc được nội dung dữ liệu. Bởi vì thật sự chỉ có liên kết của file_vne đến i-node là bị cắt đứt. Mục nhập i-node vẫn giữ lại liên kết của file_vne1. Nếu bạn xóa cả file_vne1, lúc này Linux nhận thấy i-node không còn liên kết tắt cứng nào tham chiếu đến nữa, nó sẽ loại bỏ khối dữ liệu 44 bytes mà i-node nắm giữ khỏi hệ thống file.

Bạn hãy thử tạo thêm liên kết tắt cứng file_vne2 và xóa hai liên kết tắt cứng ban đầu xem sao:
$ cat file_vne
$ ln file_vne file_vne2 (bạn cũng có thể dùng lệnh ln file_vne1 file_vne2)
$ ls -l file_vne
$ rm file_vne file_vne1 (xóa 2 file ban đầu)
$ ls -l file_vne2
$ cat file_vne2 (xem nội dung của file file_vne2)

lethaibaochau

Tổng số bài gửi : 40
Join date : 23/04/2009

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết