Como posso excluir um arquivo que está lá, mas o sistema diz que não está lá?
Como posso excluir um arquivo que está lá, mas o sistema diz que não está lá?
Respostas:
Eu tive o mesmo problema. Houve um problema nas entradas de índice da partição. Eu o resolvi iniciando o Windows se o seu sistema for de inicialização dupla ou insira um CD ao vivo do Windows XP ou Windows 7 e siga as seguintes etapas:
cmd
clique com o botão direito do mouse -> Executar como administrador. chkdsk /f/x D:
(onde D é a letra da sua unidade). 100% trabalhando
Aviso: Estas instruções exigirão uma para usar
debugfs
. Eles podem causar perda de dados.Eles são adaptados ao problema original e podem ou não ser precisos para futuros visitantes nesta página. Qualquer perda de dados pode ser irreparável ou até agravada
fsck
.
Pode ser um inode perdido. Por favor, execute ls -li
para obter uma lista de números de inode e tente despejar o inode mencionado. Por exemplo, se você se ls -li
parece com o seguinte:
rarkenin@ubuntu-alt-64-vbox-1:~$ ls -li
total 58672
4980758 -rwxr-xr-x 2 rarkenin rarkenin 4096 Sep 23 18:45 panorama.jpg
---SNIP---
então o número do inode é 4980758, como mostrado na lista como a primeira coluna.
Você pode tentar despejar o inode. Leia o post inteiro antes de fazer qualquer coisa .
Comece debugfs
como root:
rarkenin@ubuntu-alt-64-vbox-1:~$ sudo debugfs
[sudo] password for rarkenin:
debugfs 1.42 (29-Nov-2011)
debugfs:
e forneça o comando open /dev/sda1
com o dispositivo de bloco correto para sua partição.
Em seguida, dê o comando para despejar o inode cujo número você obteve anteriormente:
cat <4980758>
usando <
e >
ao redor do número do inode.
Se houver algum texto aleatório, feche o terminal e abra-o novamente. Execute debugfs
novamente e dê o open
comando novamente.
Agora, você pode tentar excluir o arquivo. Isso pode resultar em corrupção grave do sistema de arquivos.
debugfs: rm [filename]
debugfs: unlink [filename]
debugfs: kill_file [filename]
debugfs: kill_file <inode>
Observe que isso pode ser feito mesmo que o arquivo nunca tenha um inode. Experimente os comandos um de cada vez, na ordem mostrada acima. Saia dos debugfs e verifique se o arquivo existe. Caso contrário, comece novamente, mas siga as próximas instruções.
debugfs
é destinado apenas aos tipos de sistema de arquivos ext2, ext3 e ext4.
Sei que isso é antigo, mas tive o mesmo problema que o seu, apenas com uma pasta, não com um arquivo. Nenhum dos métodos sugeridos aqui funcionou.
Consegui resolver o problema criando uma pasta na mesma posição e com o mesmo nome que não consegui excluir. A pasta foi criada corretamente e "substituiu" a não existente. Simplesmente removi a nova pasta e o problema desapareceu. Simplesmente assim.
mostre-nos o terminal .... faça um ll | grep panorama
e mostre-nos isso; adicione-o à sua pergunta ...
Minha sugestão é fazer como root rm -f panorama.jpg
.
no homem de rm eu encontrei isto:
-f, --force
ignore nonexistent files, never prompt
Primeiro efetue login como root com sudo -s
Você pode tentar fazer isso rm -v <file>
e procurar pela saída detalhada para ver o que está acontecendo enquanto tenta remover o arquivo. Confira as opções para o comando abaixo.
Se isso falhar, você pode usar a opção force, como todos os outros disseram. Você também pode tentar remover o diretório inteiro forçando uma remoção recursiva:rm -rfv **full directory address here**
No Guia de Comando do UNIX:
SINOPSE
rm [OPTION]... FILE...
DESCRIÇÃO
rm removes each file. By default, it does not remove directories.
If a file is unwritable, the standard input is a tty, and the -f or
--force option is not given, rm prompts the user for whether to remove
the file. If the response is not affirmative, the file is skipped.
OPÇÕES
Remove (unlink) the FILE(s).
-f, --force
ignore nonexistent files, never prompt
-i, --interactive
prompt before any removal
--no-preserve-root do not treat '/' specially (the default)
--preserve-root
fail to operate recursively on '/'
-r, -R, --recursive
remove directories and their contents recursively
-v, --verbose
explain what is being done
--help display this help and exit
--version
output version information and exit
By default, rm does not remove directories. Use the --recursive (-r or
-R) option to remove each listed directory, too, along with all of its
contents.
To remove a file whose name starts with a '-', for example '-foo', use
one of these commands:
rm -- -foo
rm ./-foo
Note that if you use rm to remove a file, it is usually possible to
recover the contents of that file. If you want more assurance that the
contents are truly unrecoverable, consider using shred.
Olhando para as capturas de tela, vejo que o grupo está definido como raiz. Eu tentaria usar chown e ver se isso resolve o problema.
sudo chown -hR [username]:[username] /home/[username]
Substituindo [nome de usuário] pelo seu nome de usuário.
Você receberá alguns erros.
Caracteres que não imprimem nos nomes de arquivos podem causar esses problemas - como um espaço. Experimente a opção interativa de rm, e dizer 'Y' para o arquivo que deseja excluir"
rm -i '* pan *' Observe o uso de * s para combinar com qualquer (mesmo não-printint) caracteres.
Poderia ser o inode tem foi removido, mas não a entrada do diretório.Tente ls -i para ver os inodes. fsck o sistema de arquivos para corrigir esse tipo de problema.
Tente desta maneira:
cd dir-to-delete
find ./ -exec rm -rf {} \;
Eu tive um mesmo problema com o arquivo criado pela base personalizada na Web EMR (registro médico eletrônico) no chrome. sudo touch /forcefsck
seguido de reinicialização funcionou para mim e arquivo aromaticamente excluído. Formulário de ajuda aceito nas páginas seguintes
Linux Mint 18.3 Meu arquivo inexistente era ¨filename.pdf.crdownload¨ Ele apareceu na minha área de trabalho como um pacote, ou seja, um arquivo zip no Windows fala. Para começar, cliquei com o botão direito do mouse em Propriedades, Abrir com, que mostrava zero aplicativos, então mudei para Abrir com o ¨Archive Manager¨. Imediatamente o arquivo desapareceu da minha área de trabalho. kb