如何在Unix中创建名称中带有“#”字符的文件?

5 unix filenames

我已经尝试了许多命令来创建文件和删除带有#字符的文件,但它不起作用。谁能告诉我创建然后删除以 开头的文件的命令#

Jen*_*ens 11

使用“有趣的字符”创建/删除文件的两种规范方法是

  1. 引用,就像亚历克斯所展示的那样。您可以使用单引号或双引号,具体取决于您的扩展需求。反斜杠可用于转义单个有趣的字符。只要文件名看起来不像一个选项(以破折号开头),这就会起作用。
  2. 如果文件看起来像一个选项,请在前面加上一个路径rm ./- "./-rf ."

现代版本的 Unix 实用程序通常支持双破折号来指示选项的结束。在此类系统上,rm -- -删除名为-.

请注意,您不能创建或删除名称中带有斜杠或 ASCII NUL 的文件。如果您有这样的文件(我见过它们),那么您的文件系统中的某些内容就会出现严重错误。

在您使用散列的特定情况下#,问题源于 shell 将开头的单词解释#shell 注释的开头。一个好的 shell 可以让你禁用这个 shell 功能,称为交互式注释

  • zsh: unsetopt interactivecomments
  • 重击: shopt -u interactive_comments

有了这些,您就可以touch #; rm #轻松无忧。


ale*_*lex 5

为了使...

touch "#file"
Run Code Online (Sandbox Code Playgroud)

删除...

rm "#file"
Run Code Online (Sandbox Code Playgroud)

  • 还有`touch \#file` 或`rm \#file` (2认同)
  • 或 `touch '#file'` 和 `rm '#file'` (2认同)