Các liên kết tượng trưng có thực sự tạo ra sự khác biệt trong việc sử dụng đĩa không?


21

Tôi đã đọc rất nhiều trang web, trong Linux, các liên kết tượng trưng (liên kết mềm, liên kết tượng trưng) giống như các con trỏ tham chiếu đến một tệp khác, có thể được đặt ở bất cứ đâu (như các phím tắt Windows). Tuy nhiên, khi tôi kiểm tra mức độ sử dụng đĩa của một thư mục chứa các liên kết tượng trưng, ​​có sự không khớp giữa những gì người quản lý tập tin của tôi nói và những gì dubáo cáo. Tuy nhiên, nếu tôi nhập du -L( -L, --dereference; dereference all symbolic linkstừ trang man), đầu ra du -Lvà kích thước mà trình quản lý tệp của tôi báo cáo là như nhau .

Câu hỏi của tôi là : nếu tôi có một liên kết mềm đến một tệp lớn, ví dụ,homephân vùngriêng của tôi, tôi có gặp vấn đề gì không?

Ví dụ :

/var/tmpThư mục của tôi bây giờ trống rỗng. Hãy tạo một tệp:

$ cat /some/file.txt > file.txt
$ du -ac
164 ./file.txt
168 .
168 total

Và người quản lý tập tin của tôi (Thunar, trong trường hợp này) báo cáo

Kích thước: 1 sản phẩm, tổng cộng 163,0 kB

Được rồi Bây giờ, hãy tạo một tệp thực sự lớn /tmpvà liên kết tượng trưng đến nó:

$ cat /dir/really_big.txt > /tmp/heavy.txt
$ du -a | grep heavy.txt
408 ./heavy.txt
$ ln -s /tmp/heavy.txt heavy.txt
$ du -ac
164 ./file.txt
0   ./heavy.txt
168 .
168 total

Bây giờ mọi thứ đều ổn Nhưng nếu tôi mở trình quản lý tệp của mình:

Kích thước: 2 mặt hàng, tổng cộng 570,3 kB

Và cuối cùng:

$ du -acL
164 ./file.txt
408 ./heavy.txt
576 .
576 total

Nếu phân vùng /var/tmpnằm ở vị trí lớn 1 GiB và tôi tạo liên kết trong đó đến tệp 1 GiB, ¿đĩa cứng của tôi có chết không? Tôi biết rằng dusẽ tạo ra 168 và Thunar 1 GiB, nhưng tôi không biết cái nào đúng.


Bạn có chắc chắn rằng một chương trình không báo cáo ví dụ trong Mib và một chương trình khác trong MB không?
HandyGandy

Không, đó không phải là một vấn đề đơn vị.
astrojuanlu

Câu trả lời:


34

Tất nhiên, các liên kết tượng trưng chiếm chỗ, nhưng chỉ cần phòng cần lưu trữ tên và mục tiêu cộng với một vài byte cho các siêu dữ liệu khác. Không gian được lấy bởi một liên kết tượng trưng không phụ thuộc vào không gian được lấy bởi mục tiêu (xét cho cùng, mục tiêu thậm chí không bắt buộc phải tồn tại).

Plain dubáo cáo không gian được lấy bởi một cây thư mục trên đĩa. du -Lbáo cáo không gian sẽ được lấy bởi một cây thư mục nếu tất cả các liên kết tượng trưng được thay thế bởi mục tiêu của chúng. Trước đây thường là thông tin hữu ích; ví dụ: đó là không gian bạn sẽ phục hồi nếu bạn xóa cây và đó là (khoảng) không gian bạn cần sao lưu cây.

dutrên cây thư mục hiển thị (thường) nhiều hơn một chút so với tổng kích thước tệp. Đó là do hai điều. Đầu tiên, ducũng tính các thư mục, chiếm một khoảng trống nhỏ để lưu trữ tên tệp và siêu dữ liệu. Thứ hai, duđếm không gian đĩa được lấy bởi một tệp, có thể khác với kích thước tệp: hiệu ứng phổ biến nhất là các tệp chiếm số nguyên khối (4kB trên bản cài đặt Linux điển hình), do đó, tệp 1 byte có thể hiển thị là 4kB trong sản lượng du; nhưng nén (chẳng hạn như dạng nguyên thủy được cung cấp bởi các tệp thưa thớt trên mọi hệ thống tệp unix) có thể làm cho kích thước tệp lớn hơn mức sử dụng đĩa của nó.

Từ các số bạn đưa ra, có vẻ như Thunar báo cáo tổng kích thước của các tệp trong cây thư mục, theo các liên kết tượng trưng . Nó thực sự nói như vậy một cách tinh tế - nó tuyên bố rằng tổng kích thước là 570,3 kB, không phải việc sử dụng đĩa là 570,3 kB. Điều hoàn toàn không rõ ràng từ giao diện người dùng hoặc tài liệu là Thunar tuân theo các liên kết tượng trưng khi tính toán kích thước.

Cái nào đúng là người Hồi giáo là vấn đề chủ quan. dubáo cáo sử dụng đĩa. Thunar báo cáo tổng kích thước sau các liên kết tượng trưng. Tạo một liên kết tượng trưng có tác động không đáng kể đến việc sử dụng đĩa, nhưng theo định nghĩa sẽ thay đổi các liên kết tổng kích thước theo sau biểu tượng mà Thunar báo cáo.


Tôi đã chỉnh sửa câu hỏi của mình vì vậy tôi nghĩ bây giờ khá rõ ràng, nhưng cảm ơn bạn đã trả lời.
astrojuanlu

@ Juanlu001: Tôi đã cập nhật câu trả lời của mình cho phù hợp. Tóm lại, duhiển thị việc sử dụng đĩa, trong khi Thunar hiển thị một cái gì đó khác.
Gilles 'SO- ngừng trở nên xấu xa

Sự khác biệt rất quan trọng khi bạn tạo bản sao lưu giải quyết các liên kết tượng trưng. Bạn có thể muốn làm điều đó nếu bạn biết rằng bạn có một số liên kết bên dưới một cây phân giải đến các vị trí bên ngoài một cây, nhưng phần còn lại của những thứ bên ngoài cây đó không quan trọng đối với bạn.
Mel

3

Tôi nghĩ theo mặc định, trình quản lý tệp của bạn đang cố gắng lấy kích thước của các tệp mà các liên kết mềm đang trỏ đến, trong khi đó ducung cấp cho bạn kích thước của thư mục và chính các liên kết mềm nhưng không phải là các tệp mà chúng đang trỏ đến.

Làm rõ,

`du`    -> size of directory + size of all the softlinks  
`du -L` -> size of directory + size of all the files that the softlinks are pointing to.

Tôi không chắc đây có phải là những gì bạn đang hỏi không, nhưng nếu có, thì tôi tin rằng đây có thể là câu trả lời cho câu hỏi của bạn.


Xin lỗi đã không trả lời câu hỏi của tôi: những gì bạn nói tôi đã tìm ra. Tôi vừa chỉnh sửa nó.
astrojuanlu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.