ti-enxame.com

É possível excluir arquivos quando outro sistema de arquivos é montado no caminho?

Tendo acabado de escrever uma resposta sobre movendo/usr para uma nova partição Eu queria saber sobre a exclusão de arquivos, uma vez que uma nova partição foi montada. Para usar o exemplo da pergunta, é possível montar uma nova partição em /usr e, em seguida, excluir todos os arquivos em /usr na partição raiz para liberar espaço na partição raiz.

15
Hamish Downer

Não diretamente, mas há uma maneira de contornar isso: mount --bind é seu amigo:

# 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#

Veja também man mount - procure por "bind mounts".

22
Nicholas Knight