Não é possível remover o arquivo: Nenhum arquivo ou diretório

2

Eu apenas executei um programa auto-escrito no qual faço arquivos e preencho-os com coisas. No entanto, eu fiz algo errado (ou, pelo menos, não como pretendido) com a geração de nomes e agora há quatro arquivos presos na pasta que não podem ser removidos, pois eles 'não existem'.

Saídas de comandos:

ls -li :

ls: cannot access één: No such file or directory
ls: cannot access wetenschap­pen.: No such file or directory
ls: cannot access verantwoor­delijk: No such file or directory
ls: cannot access woord wordt: No such file or directory
total 0
? -????????? ? ? ? ?            ? één
? -????????? ? ? ? ?            ? woord wordt
? -????????? ? ? ? ?            ? verantwoor­delijk
? -????????? ? ? ? ?            ? wetenschap­pen.

rm -i -- * :

rm: remove regular file 'één'? y
rm: cannot remove 'één': No such file or directory
rm: remove regular file 'woord wordt'? y
rm: cannot remove 'woord wordt': No such file or directory
rm: remove regular file 'verantwoor­delijk'? y
rm: cannot remove 'verantwoor­delijk': No such file or directory
rm: remove regular file 'wetenschap­pen.'? y
rm: cannot remove 'wetenschap­pen.': No such file or directory

rm -rf folder : (com 'pasta' sendo a pasta em que os arquivos residem)

rm: cannot remove 'folder': Directory not empty

find . -type f -delete : (a partir da resposta de Uditha Desilva)

find: cannot delete './één': No such file or directory
find: cannot delete './wetenschap­pen.': No such file or directory
find: cannot delete './verantwoor­delijk': No such file or directory
find: cannot delete './woord wordt': No such file or directory

strace -o out rm -f -- * : Conteúdo de fora

Como posso remover esses arquivos?
Importante notar é que eu não tenho acesso root, então eu preferiria uma opção que não exija isso.

    
por Simon Klaver 03.03.2016 / 12:39

3 respostas

2

Basta excluir o arquivo da interface do usuário como Mover para a lixeira. e depois ir para o lixo e excluir a partir daí. Este processo irá excluir permanentemente o seu arquivo do seu sistema linux.

    
por 03.03.2016 / 14:25
0

Esse comportamento é devido à falta de permissão de execução no diretório, o usuário não pode fazer um stat() , mas pode ler as entradas dir.

Para evitar isso, você pode fazer chmod 700 no diretório principal.

Para reproduzir novamente esse comportamento, você pode fazer um chmod 600 ou chmod 400 em qualquer diretório e terá o mesmo problema.

$ chmod 400 folder
$ ls - ltr folder
-????????? ? ? ? ?            ? omd
-????????? ? ? ? ?            ? file5
-????????? ? ? ? ?            ? file4
-????????? ? ? ? ?            ? file3.txt
-????????? ? ? ? ?            ? file2.txt

$ chmod 700 folder
$ ls - ltr folder
-rw-rw-r-- 1 tachomi tachomi  2 Mar  2 08:53 file4
-rw-rw-r-- 1 tachomi tachomi  2 Mar  2 08:53 file5
-rw-rw-r-- 1 tachomi tachomi  0 Mar  2 08:53 omd
-rw-rw-r-- 1 tachomi tachomi  2 Mar  2 09:01 file1.txt
-rw-rw-r-- 1 tachomi tachomi  2 Mar  2 09:01 file2.txt

Dê uma chance

    
por 03.03.2016 / 15:32
0

É quase como se você tivesse conseguido escrever lixo no diretório inode em vez de em arquivos dentro dele. No entanto, tente

find . -type f -delete

que não tenta fazer expansões de shell dos arquivos e pode assim ter sucesso.

EDIT: A resposta por tachomi parece ser a explicação mais provável, mas não é possível "cd" em um diretório com o modo 400, ou listar o seu conteúdo "uma vez que você está nele, de modo que não se encaixa perfeitamente:

$ chmod 400 test
$ ls -li test
ls: cannot access test/Pictures: Permission denied
ls: cannot access test/Music: Permission denied
ls: cannot access test/Shows: Permission denied
ls: cannot access test/TV: Permission denied
ls: cannot access test/Movies: Permission denied
total 0
? -????????? ? ? ? ?            ? Movies
? -????????? ? ? ? ?            ? Music
? -????????? ? ? ? ?            ? Pictures
? -????????? ? ? ? ?            ? Shows
? -????????? ? ? ? ?            ? TV
$ cd test
bash: cd: test: Permission denied
$ chmod 700 test
$ cd test
$ ls -li
total 0
267447 -rw-r--r-- 1 abcd abcd 0 Mar  3 19:45 Movies
267448 -rw-r--r-- 1 abcd abcd 0 Mar  3 19:45 Music
267449 -rw-r--r-- 1 abcd abcd 0 Mar  3 19:45 Pictures
267451 -rw-r--r-- 1 abcd abcd 0 Mar  3 19:45 Shows
267450 -rw-r--r-- 1 abcd abcd 0 Mar  3 19:45 TV

No entanto, a exclusão pode ter funcionado se o processo de exclusão da GUI alterasse as permissões do diretório "nos bastidores" antes da remoção.

    
por 03.03.2016 / 12:52

Tags