it-swarm.dev

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
[email protected]:~/test# ls testdir
bar  foo

# Mount a filesystem over existing directory
[email protected]:~/test# mount -o loop testfs testdir
[email protected]:~/test# ls testdir
lost+found

# Bind mount root filesystem to another directory
[email protected]:~/test# mount --bind / bindmnt

# Can now get to contents of original directory through the bind mount
[email protected]:~/test# ls bindmnt/root/test/testdir/
bar  foo

# Remove a file
[email protected]:~/test# rm bindmnt/root/test/testdir/bar
[email protected]:~/test# ls bindmnt/root/test/testdir/
foo
[email protected]:~/test# ls testdir
lost+found

# Unmount filesystem
[email protected]:~/test# umount testdir

# Observe the change having taken effect
[email protected]:~/test# ls testdir
foo
[email protected]:~/test#

Voir aussi man mount - recherchez "bind mounts".

23
Nicholas Knight