如何创建名称以破折号开头的空文件?

Elh*_*asi 5 command-line options parameter

我们如何创建一个 unix name 的空文件-stuff。这意味着名称以-. 我试过了,touch -stuff但没有用。

Sha*_*off 20

通常,大多数实用程序都有以 开头的选项-。大多数这些实用程序都有一个特性,允许您通过提供特殊选项来指定一个不是选项的参数--。对于这些实用程序,--意味着没有进一步的参数是选项。因此,在您的情况下,您可以使用touch -- -stuff.

有关许多实用程序遵循的一般约定的更多信息,请参阅第 12 节:单一 Unix 规范基本定义卷“实用程序约定”

创建一个空文件,另一种方法是使用shell的重定向操作符,像这样:> -stuff

  • @Elham-abbasi,不;`--` 必须是它自己的单独参数,通过内部字段分隔符(通常是一个空格)与前后参数分开。 (5认同)
  • IFS 不适用于位置参数之间的分隔符。相反,根据`man bash`... *IFS 是内部字段分隔符,用于在扩展后进行单词拆分,并使用 read 内置命令将行拆分为单词。默认值为 '<space><tab><newline>'.* 例如。`IFS=+; var1="ab c"; var2="a+b+c"; 设置 $var1 $var2; echo "$@"; 回声 $1l; 回声 $2; 回声 $3; echo $4` .. 有关更多信息,请参阅 [高级 Bash 脚本指南 -$IFS 和空格](http://tldp.org/LDP/abs/html/internalvariables.html) (2认同)

gre*_*man 15

touch ./-stuff
Run Code Online (Sandbox Code Playgroud)

这里发生了什么:对于“通常的”文件名,当前目录 ( ./) 是隐含的,因此是不必要的。但是,我们可以明确地指定它./(在正常情况下它只是多余的);这样,参数不会以开头,-也不会被解析为选项,而是作为文件名。