Como criar um arquivo com um caractere “#” no nome no Unix?

Como criar um arquivo com um caractere “#” no nome no Unix?

Já tentei vários comandos para criar um arquivo e excluir um arquivo com um #caractere, mas não funciona. Alguém pode me dizer o comando para criar e excluir um arquivo que começa com #?

Responder1

As duas formas canônicas de criar/excluir arquivos com "personagens engraçados" são

  1. Citando, como Alex mostrou. Você pode usar aspas simples ou duplas, dependendo das suas necessidades de expansão. Uma barra invertida pode ser usada para escapar de um único personagem engraçado. Isso funciona desde que o nome do arquivo não pareça uma opção (começa com um travessão).
  2. Se o arquivo parecer uma opção,preceder um caminho:rm ./- "./-rf ."

Versões modernas de utilitários Unix geralmente suportam otraço duplopara indicar o fim das opções. Nesses sistemas, rm -- -remove um arquivo chamado -.

Observe que você não pode criar ou remover arquivos com uma barra ou ASCII NUL no nome. Se você possui um arquivo desse tipo (eu os vi), algo em seu sistema de arquivos deu terrivelmente errado.

No seu caso particular com o hash #, o problema decorre do shell interpretar uma palavra começando com #como iniciando umcomentário shell. Um bom shell permite desabilitar esse recurso de shell, chamadocomentários interativos:

  • zsh:unsetopt interactivecomments
  • festa:shopt -u interactive_comments

Com estes você pode simplesmente touch #; rm #sem complicações.

Responder2

Fazer...

touch "#file"

Deletar...

rm "#file"

informação relacionada