Nếu tôi cố gắn một thư mục đã có tệp trong đó, linux có cung cấp cho tôi thông báo lỗi hay tiếp tục và hiển thị cả hệ thống tệp được gắn và các tệp đã có trong thư mục?
Nếu tôi cố gắn một thư mục đã có tệp trong đó, linux có cung cấp cho tôi thông báo lỗi hay tiếp tục và hiển thị cả hệ thống tệp được gắn và các tệp đã có trong thư mục?
Câu trả lời:
Nó sẽ chỉ được gắn kết và các tập tin biến mất, quay trở lại khi thư mục bị xóa.
Khi bạn gắn một hệ thống tệp trên một thư mục /mount-point
, bạn không thể truy cập các tệp theo /mount-point
trực tiếp nữa. Chúng vẫn tồn tại, nhưng /mount-point
bây giờ đề cập đến thư mục gốc của hệ thống tập tin được gắn kết, không phải là thư mục được dùng làm điểm gắn kết, vì vậy, nội dung của thư mục này không thể được truy cập, ít nhất là theo cách này. Ví dụ:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
Có nhiều cách để có được chế độ xem hợp nhất của hệ thống tệp được gắn và dữ liệu đã có, nhưng bạn cần một lớp bổ sung gọi là hệ thống tệp kết hợp .
Trong Linux, có một cách để xem các tệp ẩn. Bạn có thể sử dụng mount --bind
để có được một cái nhìn khác về hệ thống tập tin có điểm gắn kết. Ví dụ
mount --bind / /other-root-view
Bạn sẽ thấy tất cả các tệp trong hệ thống tập tin gốc bên dưới /other-root-view
.
# cat /other-root-view/etc/hostname
darkstar
Cụ thể, /mount-point
bây giờ sẽ có thể truy cập được /other-root-view/mount-point
và vì /other-root-view/mount-point
không phải là điểm gắn kết, bạn có thể thấy nội dung của nó ở đó:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
/mount-point/1/
sau đó gắn hệ thống tập tin khác vào /mount-point/
, tôi vẫn có thể truy cập /mount-point/1/
chứ?
mkdir /r; mount --bind / /r; du -sh /r/*
. Cảm ơn
du -x
(tương đương du --one-file-system
) sẽ làm điều đó mà không cần --bind
shenanigans.