Estou sempre me perguntando: a maioria das ferramentas GNU / Unix aceita opções no formato "menos algo", às vezes seguido por um argumento. E se você tiver um arquivo chamado menos alguma coisa?
$ ls
-f
$ rm -f
$ ls
-f
$ mv -f abc
mv: missing destination file operand after `abc'
Try `mv --help' for more information.
$ cat -f
cat: invalid option -- 'f'
Try `cat --help' for more information.
ou
$ ls
-ohello.c
$ gcc -ohello -ohello.c
gcc: fatal error: no input files
compilation terminated.
Isso é apenas por curiosidade; Eu não tenho um caso de uso para isso.
Respostas:
Para remover um arquivo chamado
-x
, userm -- -x
(--
significa o fim das opções) ourm ./-x
.fonte
É bastante comum fazer esse tipo de pergunta nas configurações da entrevista. Uma maneira comum de lidar com arquivos com traços é:
fonte
Uma pergunta comum no Unix. A principal maneira é fornecer o nome completo do caminho para o arquivo, para que ele não tenha um traço na frente:
Em alguns comandos, você pode usar um traço sozinho (ou um traço duplo) para finalizar as opções. No entanto, isso não é necessariamente verdade com todos os comandos ou mesmo com o mesmo comando em sistemas diferentes.
fonte
você tem que usar
Ex:
fonte