¿Cómo crear un archivo con el carácter "#" en el nombre en Unix?

¿Cómo crear un archivo con el carácter "#" en el nombre en Unix?

Ya probé muchos comandos para crear un archivo y eliminar un archivo con un #carácter, pero no funciona. ¿Alguien puede decirme el comando para crear y luego eliminar un archivo que comienza con #?

Respuesta1

Las dos formas canónicas de crear/eliminar archivos con "personajes divertidos" son

  1. Citando, como mostró alex. Puede utilizar comillas simples o dobles, según sus necesidades de expansión. Se puede utilizar una barra invertida para escapar de un único carácter divertido. Esto funciona siempre que el nombre del archivo no parezca una opción (comienza con un guión).
  2. Si el archivo parece una opción,anteponer un camino:rm ./- "./-rf ."

Las versiones modernas de las utilidades Unix a menudo admiten ladoble guiónpara indicar el final de las opciones. En dichos sistemas, rm -- -elimina un archivo llamado -.

Tenga en cuenta que no puede crear ni eliminar archivos con una barra o ASCII NUL en su nombre. Si tiene un archivo de este tipo (los he visto), algo en su sistema de archivos salió terriblemente mal.

En su caso particular con el hash #, el problema surge porque el shell interpreta una palabra que comienza con #como si comenzara uncomentario de concha. Un buen shell le permite desactivar esta característica del shell, llamadacomentarios interactivos:

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

Con estos podrás hacerlo de forma sencilla touch #; rm #y sin complicaciones.

Respuesta2

Para hacer...

touch "#file"

Borrar...

rm "#file"

información relacionada