Eu fiz algo louco em algum momento que criou um arquivo chamado -rf
no meu sistema de arquivos.
Agora não consigo descobrir como excluí-lo ...
Eu tentei:
rm "-rf"
rm \-rf
Estes simplesmente saem imediatamente, arrgh!
Alguém sabe como remover este arquivo? De preferência, sem limpar acidentalmente toda a minha pasta.
rm
chamar um arquivo-rf
do seu sistema sem lembrar a sintaxe exata!rm
(em itargc
eargv
). Assim, os dois resultam na matriz que["rm", "-rf"]
é passada pararm
, o que faz o que você esperaria.*
em uma pasta. Incluir um chamado-rf
bem e assistir a diversão ;-)mkdir './-rf '
(ls --classify, um padrão comum em um alias de shell, irá acrescentar a /)Respostas:
Ou
fonte
getopt
possui--
, o que deve significar a maioria das ferramentas Linux modernas.Outra opção:
... assumindo o diretório atual é onde o arquivo reside.
fonte
Como alternativa, você sempre pode editar o diretório e remover o arquivo dessa maneira.
e exclua a linha com o arquivo (usando D, dd não funcionará).
fonte
vim
havia um modo direcionado. Claramente, editar o próprio diretório real em um editor de texto não é recomendado nem possível sem um verdadeiro salto de arco especializado. Observe queemacs
também funcionaria, e pelo mesmo motivo.Uma técnica genérica para excluir nomes de arquivos estranhos é usar.
para encontrar o número de inode do arquivo e, em seguida, use.
Não há necessidade de lembrar de todos os casos especiais.
fonte
find
tinha o poder de excluir arquivos.Embora eu conheça o truque "rm - -filename", geralmente quando, de alguma forma, recebo um arquivo com um líder - em seu nome que quero remover, inicio um gerenciador de arquivos da GUI e faço a partir daí, para eliminar a chance de erros.
fonte
Se você só quer ter certeza:
fonte
Caso você esteja em algum Unix que não seja o GNU onde você se sinta puxado de volta à idade da pedra (sem
--
sintaxe, sem-inum
opção de encontrar, sem comando de desconexão, seu editor se recusará a editar diretórios etc.), você ainda poderá ajudar:Isso fará com que o find alimente todos os candidatos em potencial à rm, que, por sua vez, solicitarão permissão / negação para cada arquivo alimentado.
Caso você
rm
nem suporte o-i
switch (HP-UX 10.2 no PA-RISC 1.1, alguém?), Tenha mais cuidado:fonte
find
?Apoiando a resposta de jleedev , eu melhoraria com:
para estar no modo interativo e pedir confirmação, para ter certeza do que você excluiu. (embora a solução seja boa. é simplesmente para sua paz de espírito)
Na verdade, até use isso:
para ter certeza de que você não está usando aliases.
fonte
Como já foi sugerido, eu sempre usei a sintaxe
quando tive que remover um arquivo com um traço como prefixo, porque o - diz ao comando que ele não procura nenhum outro parâmetro, mas apenas nomes de arquivos.
Mantendo isso em mente, para proteger minha importante pasta por exclusão acidental de arquivos, fui usado para criar um arquivo vazio chamado simplesmente -i, que normalmente é colocado no topo da lista de arquivos ao resolver a pesquisa *. Então o comando
quando excutado em minha pasta protegida é explodido, durante a execução, no comando:
e o shell, em vez de excluir tudo imediatamente, para de pedir uma confirmação (conforme a opção -i exige).
fonte
-i
nome do arquivo hack - "I" era cético, mas testou!A última vez que tive esse problema, resolvi-o com:
Pitão
importação os
os.remove ("- rf")
fonte
Martin Clayton está certo.
É muito simples e lógico. Se as opções existirem, é sempre
-XXX
ou--CCCC
não, se você colocar um./
ou o caminho completo-rf
não poderá ser considerado uma opção e será considerado como uma sequência normal.Funciona com "todos" nomes de arquivos estranhos.
fonte
rm - -rf a maioria das ferramentas gnu aceita - como marcador do fim das opções
fonte