Passa uma string de sintaxe de opção como nome do arquivo

1

Eu de alguma forma recebi um arquivo chamado --no-recursion em um diretório. Como posso obter cat para mostrar o que contém? Não assim, já que o argumento é interpretado como uma opção:

root@nagini [/home/lalilulelo]# cat --no-recursion 
cat: unrecognized option '--no-recursion'
Try 'cat --help' for more information.
root@nagini [/home/lalilulelo]# cat \--no-recursion 
cat: unrecognized option '--no-recursion'
Try 'cat --help' for more information.
root@nagini [/home/lalilulelo]# cat \--no-recursion 
cat: \--no-recursion: No such file or directory
    
por Bart van Heukelom 11.10.2011 / 23:57

1 resposta

5

O que acontece é que cat trata --no-recursion como sua opção. Você pode fazer o seguinte:

cat ./--no-recursion

OR

cat -- --no-recursion

Pode fazer a mesma coisa com rm para excluir este arquivo (já que provavelmente é um erro de algum tipo).

No meu primeiro exemplo, preenchei o caminho do diretório atual ("./") para o nome do arquivo, portanto ele não inicia com um prefixo de opção e, no segundo exemplo, adicionei uma opção especial -- , que significa "pare de tratar qualquer coisa que venha depois disso como uma opção".

    
por 12.10.2011 / 00:01