Não é possível excluir o diretório

2

No meu host OS X, estou tendo problemas para excluir o diretório "foo".

mymac:.Trashes joe$ ls
foo
mymac:.Trashes joe$ ls foo/
Ảnh011.jpg  Ảnh012.jpg  Ảnh013.jpg
mymac:.Trashes joe$ ls -l foo/
ls: Ảnh011.jpg: No such file or directory
ls: Ảnh012.jpg: No such file or directory
ls: Ảnh013.jpg: No such file or directory
mymac:.Trashes joe$ rm -rf foo/
rm: foo/: Directory not empty
mymac:.Trashes joe$ sudo rm -rf foo/
Password:
rm: foo/: Directory not empty

Como você pode ver, existem alguns arquivos no diretório "foo", que eu só posso executar ls on; executando ls -l retorna um erro. Não consigo excluir os arquivos individuais ou o diretório. O uso da "Esvaziar Lixeira" também não funcionou. Eu também tentei 'Disk Utility' - > 'Verificar disco' e 'Reparar disco'.

Editar: Conforme solicitado, aqui estão mais informações

mymac:.Trashes joe$ ls -del foo/
drwxrwxrwx  2 joe  staff  16384 13 May 11:19 foo/
mymac:.Trashes joe$ ls -del foo
drwxrwxrwx  2 joe  staff  16384 13 May 11:19 foo
mymac:.Trashes joe$ LC_ALL=C
mymac:.Trashes joe$ ls -ABeli foo/
total 1812
18972612676 -rwxrwxrwx  1 joe  staff  305951 13 May 11:19 Ảnh011.jpg
19123958587 -rwxrwxrwx  1 joe  staff  309745 13 May 11:19 Ảnh012.jpg
18511775654 -rwxrwxrwx  1 joe  staff  310907 13 May 11:19 Ảnh013.jpg
mymac:.Trashes joe$ find foo/
foo/
foo//Ảnh011.jpg
foo//Ảnh012.jpg
foo//Ảnh013.jpg
    
por joe 15.05.2012 / 16:39

4 respostas

2

Parece que, de alguma forma, você tem nomes de entrada em foo , que não vinculam a um nó válido para um arquivo. Não tenho certeza de como isso pode acontecer ou porque rm -rf não excluiria a entrada do diretório, mesmo que isso acontecesse.

Mas, talvez, se você associar a entrada de diretório a um nó de arquivo válido, ela será excluída? Em outras palavras, talvez isso?

touch foo/Ảnh011.jpg
rm foo/Ảnh011.jpg

Hmmm. Alguém mais acha que o // no resultado abaixo é, bem, inesperado?

mymac:.Trashes joe$ find foo/
foo/
foo//Ảnh011.jpg
foo//Ảnh012.jpg
foo//Ảnh013.jpg

Eu esperava que fosse como mostrado abaixo. Poderia o // (seja o que for) ter sido uma pista para o problema?

foo/Ảnh011.jpg
foo/Ảnh012.jpg
foo/Ảnh013.jpg
    
por 16.05.2012 / 04:48
1

Você já tentou renomear os arquivos primeiro? Os arquivos têm um caractere especial no início "Ả". Tente renomear os arquivos primeiro e excluí-los.

    
por 15.05.2012 / 19:31
1

As respostas acima são boas, mas há outra coisa que você deve saber.

Por padrão, 'ls' (ou 'ls -l') não mostra arquivos cujos nomes começam com '.' (também conhecido como "arquivos de pontos")

Para garantir que você veja todos os arquivos, use 'ls -a'.

É possível, embora não esteja certo de que você tenha outros arquivos que começam com um '.' em 'foo /' e é por isso que não está vazio.

Dito isto, eles devem ter sido removidos com '/ bin / rm -rf foo', então tem que haver algum outro problema nesse diretório.

    
por 15.05.2012 / 22:59
0

Tente excluir os arquivos com este comando e exclua a pasta.

find . -iname '*.jpg' -exec rm {} \;
    
por 15.05.2012 / 22:28