Jeśli spróbuję zamontować folder, w którym są już pliki, czy linux wyświetli komunikat o błędzie, czy też pokaże zarówno podłączony system plików, jak i pliki, które już były w folderze?
Jeśli spróbuję zamontować folder, w którym są już pliki, czy linux wyświetli komunikat o błędzie, czy też pokaże zarówno podłączony system plików, jak i pliki, które już były w folderze?
Odpowiedzi:
Zostanie po prostu zamontowany, a pliki znikną, wracając, gdy folder zostanie podłączony.
Po zamontowaniu systemu plików w katalogu /mount-pointnie można już uzyskać /mount-pointbezpośredniego dostępu do plików w katalogu . Nadal istnieją, ale /mount-pointteraz odnoszą się do katalogu głównego zamontowanego systemu plików, a nie do katalogu, który służył jako punkt podłączenia, więc zawartość tego katalogu nie jest dostępna, przynajmniej w ten sposób. Na przykład:
# 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
Istnieją sposoby uzyskania scalonego widoku zamontowanego systemu plików i danych, które już były obecne, ale potrzebujesz dodatkowej warstwy zwanej unijnym systemem plików .
Pod Linuksem istnieje sposób, aby zobaczyć ukryte pliki. Możesz użyć, mount --bindaby uzyskać inny widok systemu plików, w którym znajduje się punkt montowania. Na przykład
mount --bind / /other-root-view
Zobaczysz wszystkie pliki w głównym systemie plików pod /other-root-view.
# cat /other-root-view/etc/hostname
darkstar
W szczególności /mount-pointbędzie teraz dostępny jako /other-root-view/mount-point, a ponieważ /other-root-view/mount-pointnie jest punktem montowania, możesz tam zobaczyć jego zawartość:
# 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/zamontowałem inny system plików /mount-point/, czy nadal mogę uzyskać dostęp /mount-point/1/?
mkdir /r; mount --bind / /r; du -sh /r/*. Dzięki
du -x(odpowiednik du --one-file-system) zrobiłby to bez potrzeby --bindshenaniganów.