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

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

我们如何创建一个名为 unix 的空文件-stuff。意思是名字以 开头-。我尝试过touch -stuff,但没有成功。

答案1

一般来说,大多数实用程序都有以 开头的选项-。大多数这些实用程序都有一个功能,允许您通过提供特殊选项来指定不是选项的参数--。对于这些实用程序,--意味着没有其他参数可供选择。所以在你的情况下,你可以使用touch -- -stuff.

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

创建空文件的另一种方法是使用 shell 的重定向运算符,如下所示:> -stuff

答案2

touch ./-stuff

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

答案3

您还可以使用:

echo -n > -stuff

答案4

由于您的问题具体涉及创建空的文件,请注意,它的touch主要目的是“触摸”文件的时间戳。
第二个方面是touch,如果指定的文件不存在,它将创建一个空文件。
当然,这意味着它将不是始终创建一个空文件。

为了确保您最终得到一个空文件,您可以使用>重定向运算符(如其他答案中提到的),或者cp -- /dev/null -a

touch允许一次创建(或仅修改时间戳)多个文件。
>并且cp一次只能处理一个文件..

相关内容