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


18

Tendo acabado de escrever uma resposta sobre mover / usr para uma nova partição, fiquei pensando em excluir arquivos depois que uma nova partição foi montada. Para usar o exemplo da pergunta, é possível montar uma nova partição /usre excluir todos os arquivos /usrna partição raiz para liberar espaço na partição raiz.

Respostas:


24

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

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

Veja também man mount- procure por "montagens de ligação".


Excelente resposta - apenas adicionarei um link para uma versão online da página do manual mount .
11307 Hamish Downer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.