Por que o 'rm -rf' 'falha silenciosamente?

0

[EDITAR] Por favor, não perca seu tempo lendo a minha pergunta abaixo. Acontece que meu colega é um idiota ..:)

No meu servidor, estou tentando remover uma pasta e todas as suas subpastas com o usual rm -rf dirname , mas ela falha silenciosamente:

kramer65@vps1:~$ ls -l
total 24
drwxrwxr-x  2 kramer65 kramer65 4096 Jul 11 22:00 backups
drwxrwxr-x  2 kramer65 kramer65 4096 Jul 17 17:37 bin
drwxrwxr-x  3 kramer65 kramer65 4096 Sep  1 11:11 cxs
kramer65@vps1:~$ rm -rf cxs/
kramer65@vps1:~$ ls
backups  bin  cxs
kramer65@vps1:~$ sudo rm -rf cxs/
kramer65@vps1:~$ ls
backups  bin  cxs
kramer65@vps1:~$ rmdir cxs/
rmdir: failed to remove ‘cxs/’: Directory not empty

Eu também tentei remover todo o conteúdo do diretório:

kramer65@vps1:~$ cd cxs
kramer65@vps1:~/cxs$ ls
app            README.md
kramer65@vps1:~/cxs$ rm -rf *
kramer65@vps1:~/cxs$ ls
app            README.md
kramer65@vps1:~/cxs$ sudo rm -rf *
kramer65@vps1:~/cxs$ ls
app            README.md

Estou bem com os comandos que falham, se ao menos isso me dissesse o que está errado. Alguma ideia do que estou fazendo errado aqui? Todas as dicas são bem vindas!

[EDITAR] Eu tentei o seguinte (também sem sucesso):

kramer65@vps1:~$ sudo rm -vrf cxs/*
removed ‘cxs/app/static/img/face1.jpg’
removed ‘cxs/app/static/img/face2.jpg’
removed ‘cxs/app/static/img/face3.jpg’
[etc.etc.]
removed directory: ‘cxs/app’
removed ‘cxs/README.md’
kramer65@vps1:~$ ls cxs/
app            README.md
kramer65@vps1:~$

[EDIT2] Acontece que um colega tinha um rsync em execução que constantemente re-escreveu os arquivos para essa pasta. Por isso, removeu-os, mas recriou-os automaticamente também. (Eu estou batendo minha cabeça contra a parede aqui!)

    
por kramer65 01.09.2014 / 11:20

2 respostas

2

Tente o seguinte

rm -rf /the/full/dir
    
por 01.09.2014 / 11:28
1

Verifique os atributos estendidos dos arquivos:

lsattr -R /cxs

Se algum deles tiver o atributo i definido, será imutável, o que significa que não pode ser excluído.

Remova o atributo imutável com:

chattr -i <path to file/directory>

Em seguida, tente excluir novamente.

Observe que um arquivo com o conjunto de atributos imutáveis normalmente não falha silenciosamente quando você tenta excluí-lo, mas, em vez disso, reclama de "Operação não permitida".

    
por 01.09.2014 / 11:34