Como remover um diretório que não está vazio? [duplicado]

0

Eu tenho tentado apagar (remover) um diretório de um dos meus discos rígidos internos e o sistema me diz que "O diretório não pode ser removido porque não é um diretório vazio".

A questão é que o diretório está vazio!

Pelo menos, eu não consigo ver nenhum dentro dele com o gerenciador de arquivos Thunar ou do Terminal com privilégios de root.

O diretório onde o diretório que eu quero excluir é, tem essa saída para ls-la :

total 28

drwxrwxrwx 1 root root  4096 ene 15 10:01 .

drwxrwxrwx 1 root root 20480 ene 15 10:01 ..

drwxrwxrwx 1 root root  4096 ene 15 10:01 matrimonio de fiesta sara y luis hernan

E, o diretório que eu quero excluir, tem essa saída:

total 8

drwxrwxrwx 1 root root 4096 ene 15 10:01 .

drwxrwxrwx 1 root root 4096 ene 15 10:01 ..

Um caso semelhante com outro diretório que tem 3 arquivos e, cada vez que eu estava tentando removê-los, o sistema me diz: "Arquivos não encontrados".

Eu estava tentando com sudo rm -r -f e ... nada!

O mesmo histórico toda vez que eu usei. O que há de errado aqui?

Existe outro comando mais poderoso para remover diretórios e / ou arquivos?

    
por Juan 15.01.2016 / 14:26

2 respostas

1

Você pode remover diretórios vazios com os diretórios rmdir <directory> e não vazios com rm -r <directory> .

O que causa problemas, pode ser o seguinte:
Considere o conteúdo deste diretório:

$ tree -a
.
├── empty
├── non-empty
│   └── file.txt
└── non-empty-with-hidden-file
    └── .file.txt

Temos um diretório epty contendo um arquivo e um contendo um arquivo oculto. Agora execute rmdir * :

$ rmdir *
rmdir: failed to remove 'non-empty': Directory not empty
rmdir: failed to remove 'non-empty-with-hidden-file': Directory not empty
$ tree -a
.
├── non-empty
│   └── file.txt
└── non-empty-with-hidden-file
    └── .file.txt

Como você pode ver, empty foi removido e os outros dois causaram mensagens de erro. Agora você pode executar rm -r :

$ rm -r non-empty
$ tree -a
.
└── non-empty-with-hidden-file
    └── .file.txt

Seu erro file not found provavelmente não é causado por rm , mas por um erro de digitação no nome do arquivo ou no caminho do diretório. Você pode evitar isso usando a função autocomplete ( Tab ) em vez de digitar manualmente.

    
por Wayne_Yux 15.01.2016 / 14:44
0

A resposta de Wayne está correta, mas se ocorrer um erro, você pode adicionar a opção '-f' a rm , "forçando" a remoção:

sudo rm -rf "/path/to/the/directory"

    
por Eduardo Cola 16.01.2016 / 14:37