Isso mesmo. Olhando meus diretórios pra começar um backup, percebi que criei um arquivo com nome "-C". Provavelmente resultando de alguma comando errado.
O que fazer nesse caso? Em geral comandos como "rm" e "mv" não funcionam pois interpretam o "-C" como uma opção do comando, não como arquivo.
Existem várias formas de resolver isso, inclusive algumas mais fáceis via interface gráfica usando nautilus/dolphin ou algo do gênero. Mas vou mostrar a "forma UNIX" de resolver isso.
Primeiramente, onde está o danado do arquivo?
helio@linux:home$ ls backup -C helio fisl lost+found support
No caso estava no meu diretório "/home". E o que era o arquivo?
helio@linux$ home# ls -l total 646124 drwxr-xr-x 2 root root 4096 Nov 21 09:41 backup -rw-r--r-- 1 root root 661555200 Oct 9 12:05 -C drwxr-xr-x 367 helio linux 36864 Nov 21 09:43 helio drwxr-xr-x 6 fisl fisl 4096 Mar 5 2014 fisl drwx------ 2 root root 16384 Nov 16 2013 lost+found drwxr-xr-x 5 support admin 4096 May 17 2013 support
Agora vem o truque. Cada arquivo criado no seu filesystem tem junto um número de i-node, que é onde ele foi efetivamente gravado no disco. É possível usar a opção "-i" do comando "ls" pra verificar cada número de i-node de cada arquivo do diretório, seja um arquivo, seja um diretório, ou seja qualquer outra coisa (em Unix, tudo é arquivo).
root@linux:home# ls -i 15335425 backup 4741 -C 16252929 helio 14942209 fisl 11 lost+found 15466497 support
Verificado qual o número do i-node, 4741, agora é usar o comando "find" com opção de "-inum" pra mexer nesse arquivo, junto com um "-exec". Na opção "-exec", o arquivo encontrado é substituído pelo "{}", que é como se fosse uma variável com o que foi encontrado pelo parâmetros anteriores, no caso o "-inum".
Então basta usar isso pra renomear o arquivo pra qualquer outro nome.
root@linux:home# find . -maxdepth 1 -inum 4741 -exec mv {} arquivo_alien \;
Verificando...
root@linux:home# ls backup helio fisl lost+found support arquivo_alien
Agora descobrindo o que é esse arquivo.
root@linux:home# file arquivo_alien arquivo_alien: POSIX tar archive (GNU) root@linux:home# mv arquivo_alien arquivo_alien.tar root@linux:home# tar tvf arquivo_alien.tar drwxr-xr-x root/root 0 2014-10-09 12:05 home/ drwxr-xr-x fisl/fisl 0 2014-03-05 10:16 home/fisl/ drwxr-xr-x fisl/fisl 0 2014-03-05 10:16 home/fisl/.purple/ -rw-r--r-- fisl/fisl 173 2014-03-05 10:16 home/fisl/.purple/blist.xml drwxr-xr-x fisl/fisl 0 2013-07-04 22:21 home/fisl/.purple/certificates/
Realmente um arquivo do tipo tar. Provavelmente de algum backup que tentei fazer e passei a opção de forma errado. Sem stress e problema resolvido.
root@linux:home# rm arquivo_alien.tar