Para arquivos únicos ou pequenos conjuntos de arquivos, se o curinga não permitir a precisão que você precisa, você pode combinar ls -i
(ou stat
, se disponível) e find -inum
.
Por segurança, ao usar -inum
de find, sempre use também -xdev
para restringir a pesquisa a um único sistema de arquivos. Não fazer isso pode ter resultados inesperados.
Por exemplo:
~$ ls -i myweirdfile
183435818 myweirdfile
~$ find . -xdev -inum 183435818 -exec rm -i '{}' ';'
rm: remove regular file './myweirdfile'? y
~$
Como alternativa, em uma única chamada (isso pode depender do GNU coreutils stat, que deve ser uma suposição razoavelmente segura no Linux e usa a substituição do processo sh-style):
~$ find . -xdev -inum $(stat -c '%i' 'myweirdfile') -exec rm -i '{}' ';'
rm: remove regular file './myweirdfile'? y
~$
Você também pode usar a ação -delete
do find em vez de -exec
'ing rm. Para nomes de arquivos muito estranhos, isso pode ser mais seguro. Use -print
ou -ls
primeiro para verificar qual arquivo será excluído. Algo como o seguinte:
~$ ls -i myweirdfile
183435818 myweirdfile
~$ find . -xdev -inum 183435818 -print
./myweirdfile
~$ find . -xdev -inum 183435818 -delete
~$ find . -xdev -inum 183435818 -print
~$
Tenha em mente que os hardlinks usam o mesmo número de inode para vários nomes, então você quer ter certeza de que não há nenhum nome adicional perdido em qualquer lugar que seja excluído também (a menos que você queira fazer isso, obviamente).