Eu posso garantir que o arquivo tem um nome. Apenas é um nome que contém caracteres não imprimíveis.
Se rm não funcionou, usar a saída de find com a opção -inum como argumento para rm provavelmente não ajudará; vai passar o mesmo argumento para rm , com o mesmo problema.
O arquivo é o único desse diretório, certo?
A primeira coisa que eu tento é cd no diretório, então digite rm ./ , então aperte a tecla Tab. Isso deve expandir o argumento para o nome real do arquivo, e o ./ anterior deve impedir que rm interprete o argumento como algo diferente de um nome de arquivo.
Outra solução é cd para o diretório pai e, em seguida, use rm -r (ou, se necessário, rm -rf ) no diretório. Isso deve remover o diretório e todo o seu conteúdo, independentemente do nome. Você pode usar mkdir para recriar o diretório (e talvez chmod para restaurar suas permissões).
EDITAR:
Olhando sua saída ls -lb novamente, acho que o nome do arquivo começa com um caractere ASCII DEL (que é ruim, não não fatal) e contém um ou mais caracteres de nova linha (que é muito ruim). Tanto quanto eu posso dizer, o comando rm não pode interpretar uma nova linha como parte de um nome de arquivo.
Mas a chamada do sistema unlink() pode. Aqui está um script em Perl que eu joguei juntos que irá percorrer os arquivos no diretório atual, e pedir-lhe para cada um se você deseja removê-lo. Ele não usa um comando externo como rm para remover os arquivos, portanto deve ser capaz de manipular quaisquer caracteres engraçados que o sistema de arquivos suportar (qualquer coisa diferente de ASCII NUL e / ).
Fazer rm -r ou rm -rf no diretório que contém ainda deve funcionar, mas se você quiser apenas remover um único arquivo, tente isso.
#!/usr/bin/perl
use strict;
use warnings;
opendir my $DIR, '.' or die ".: $!\n";
my @files = sort grep { -f } readdir $DIR;
closedir $DIR;
foreach my $file (@files) {
my $pfile = printable($file);
print "Remove $pfile? ";
my $answer = scalar <STDIN>;
if ($answer =~ /^[Yy]/) {
print "Removing $pfile\n";
unlink $file or warn "Unable to remove $pfile: $!\n";
}
}
sub printable {
my($s) = @_;
$s =~ s/[^ -~]/?/g;
return $s;
}
(Outra solução, se houver outros arquivos no diretório que você deseja manter, é mover todos os outros arquivos para um diretório temporário, em seguida, fortaleça e recrie o diretório e mova os outros arquivos de volta.)
(Ah, e o que você fez para criar esse arquivo, tente não fazer isso de novo!)