web-dev-qa-db-fra.com

Est-il possible de supprimer des fichiers lorsqu'un autre système de fichiers est monté sur le chemin?

Ayant juste écrit une réponse à propos de déplacement de/usr sur une nouvelle partition Je me demandais si je voulais supprimer des fichiers une fois qu'une nouvelle partition a été montée. Pour utiliser l'exemple de la question, est-il possible de monter une nouvelle partition sur /usr, puis de supprimer tous les fichiers sous /usr sur la partition racine pour libérer de l'espace sur la partition racine.

17
Hamish Downer

Pas directement, mais il y a un moyen de contourner ça: mount --bind est ton ami:

# Existing directory with a couple files in it
root@nkubuntu1004:~/test# ls testdir
bar  foo

# Mount a filesystem over existing directory
root@nkubuntu1004:~/test# mount -o loop testfs testdir
root@nkubuntu1004:~/test# ls testdir
lost+found

# Bind mount root filesystem to another directory
root@nkubuntu1004:~/test# mount --bind / bindmnt

# Can now get to contents of original directory through the bind mount
root@nkubuntu1004:~/test# ls bindmnt/root/test/testdir/
bar  foo

# Remove a file
root@nkubuntu1004:~/test# rm bindmnt/root/test/testdir/bar
root@nkubuntu1004:~/test# ls bindmnt/root/test/testdir/
foo
root@nkubuntu1004:~/test# ls testdir
lost+found

# Unmount filesystem
root@nkubuntu1004:~/test# umount testdir

# Observe the change having taken effect
root@nkubuntu1004:~/test# ls testdir
foo
root@nkubuntu1004:~/test#

Voir aussi man mount - recherchez "bind mounts".

23
Nicholas Knight