Как создать файл с символом «#» в имени в Unix?

Как создать файл с символом «#» в имени в Unix?

Я уже перепробовал много команд для создания файла и удаления файла с #символом, но это не работает. Может ли кто-нибудь сказать мне команду для создания и удаления файла, который начинается с #?

решение1

Два канонических способа создания/удаления файлов со «смешными персонажами»:

  1. Цитата, как показал alex. Вы можете использовать одинарные или двойные кавычки, в зависимости от ваших потребностей в расширении. Обратную косую черту можно использовать для экранирования одного забавного символа. Это работает, пока имя файла не выглядит как опция (начинается с тире).
  2. Если файл выглядит как вариант,добавить путь:rm ./- "./-rf ."

Современные версии утилит Unix часто поддерживаютдвойное тиредля обозначения конца опций. В таких системах rm -- -удаляет файл с именем -.

Обратите внимание, что вы не можете создавать или удалять файлы с косой чертой или ASCII NUL в имени. Если у вас есть такой файл (я видел их), что-то в вашей файловой системе пошло ужасно неправильно.

В вашем конкретном случае с хешем #проблема возникает из-за того, что оболочка интерпретирует слово, начинающееся с, #как началокомментарий оболочки. Хорошая оболочка позволяет отключить эту функцию оболочки, называемуюинтерактивные комментарии:

  • зш:unsetopt interactivecomments
  • Баш:shopt -u interactive_comments

С ними вы можете просто и touch #; rm #без хлопот.

решение2

Делать...

touch "#file"

Удалить...

rm "#file"

Связанный контент