Se provo a montare una cartella che contiene già dei file, Linux mi dà un messaggio di errore o va avanti e mostra sia il filesystem montato che i file che erano già nella cartella?
Se provo a montare una cartella che contiene già dei file, Linux mi dà un messaggio di errore o va avanti e mostra sia il filesystem montato che i file che erano già nella cartella?
Risposte:
Verrà semplicemente montato e i file scompariranno, tornando indietro quando la cartella viene smontata.
Quando si monta un filesystem su una directory /mount-point
, non è più possibile accedere /mount-point
direttamente ai file . Esistono ancora, ma /mount-point
ora si riferisce alla radice del filesystem montato, non alla directory che fungeva da punto di montaggio, quindi non è possibile accedere al contenuto di questa directory, almeno in questo modo. Per esempio:
# 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
Esistono modi per ottenere una vista unita del filesystem montato e dei dati che erano già presenti, ma è necessario un livello aggiuntivo chiamato un filesystem union .
Sotto Linux, c'è un modo per vedere i file nascosti. È possibile utilizzare mount --bind
per ottenere un'altra vista del filesystem in cui si trova il punto di montaggio. Per esempio
mount --bind / /other-root-view
Vedrai tutti i file nel filesystem di root sotto /other-root-view
.
# cat /other-root-view/etc/hostname
darkstar
In particolare, /mount-point
ora sarà accessibile come /other-root-view/mount-point
, e poiché /other-root-view/mount-point
non è un mount point, puoi vedere i suoi contenuti lì:
# 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/
poi montato un altro filesystem su /mount-point/
, posso ancora accedere /mount-point/1/
?
mkdir /r; mount --bind / /r; du -sh /r/*
. Grazie
du -x
(equivalente a du --one-file-system
) lo avrebbe fatto senza la necessità di --bind
shenanigans.