Por que o 'rmdir -p --ignore-fail-on-non-empty' falha ao encontrar o $ HOME?

1

Por favor, considere os seguintes comandos:

cd /
mkdir -p ~/a/b
touch ~/a/content
# Removes dir 'b' and stops at 'a' because it's non-empty.
# (This is the expected behavior.)
rmdir -p --ignore-fail-on-non-empty ~/a/b

rm ~/a/content
mkdir -p ~/a/b
# Fails with error: "rmdir: failed to remove directory '/home/myhome'".
rmdir -p --ignore-fail-on-non-empty ~/a/b

Por que o rmdir falha no último passo? Por que ele tenta excluir o não vazio $HOME em vez de parar?

    
por ens 18.08.2017 / 21:46

1 resposta

3

Aqui está o que man rmdir diz:

--ignore-fail-on-non-empty

ignore each failure that is solely because a directory is non-empty

i.e. uma falha ao remover um diretório devido a algum outro erro outro , além de estar vazio, ainda será relatada.

E como usuários comuns normalmente não têm permissões suficientes para modificar /home (incluindo a remoção de seu próprio diretório inicial), o rmdir apenas acusa um erro "Permissão negada", quando chamado dessa forma.

Você pode confirmar isso com facilidade, tentando:

rmdir ~

que resultará em:

rmdir: failed to remove '/home/youruser': Permission denied
    
por 18.08.2017 / 22:22

Tags