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

18

Après avoir écrit une réponse sur le déplacement de / usr vers une nouvelle partition, je me demandais de 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 /usrpuis de supprimer tous les fichiers sous /usrsur la partition racine pour libérer de l'espace sur la partition racine.

Hamish Downer
la source

Réponses:

24

Pas directement , mais il existe un moyen de contourner cela: mount --bindvotre ami est-il:

# 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- recherche de "fixations de liens".

Nicholas Knight
la source
Excellente réponse - je vais simplement ajouter un lien vers une version en ligne de la page de manuel de montage .
Hamish Downer