如何在 bash 脚本中创建一个新的空文件?

Sha*_*ang 29 shell bash shell-script files

我正在运行一些第三方 Perl 脚本,它需要一个输出标志的输出文件,-o.

不幸的是,该脚本似乎需要一个实际文件,即用户必须创建一个filename.txt0 字节的空文件,然后在脚本命令行中输入这个空文件

perl script1.pl -o filename.txt
Run Code Online (Sandbox Code Playgroud)

问题:如何在 bash 脚本中创建一个空文件?如果只是尝试perl script1.pl -o filename.txt,脚本会给出文件不存在的错误。

MKT*_*MKT 37

使用touch命令。touch filename.txt.

  • `echo -n > 文件` (13认同)
  • 小心 - 如果它已经存在,这不会清空您的文件 (8认同)
  • ```echo -n "" > filename``` 如果文件存在则清空文件,如果文件不存在则创建一个文件。 (2认同)

thr*_*rig 9

使用空命令 ( :) 重定向 ( > filename) 技巧 ( :>),因为这将截断为零或创建命名文件。

$ echo foo > filea
$ :> filea
$ wc -c filea
       0 filea
$ rm filea
$ :> filea
$ wc -c filea
       0 filea
Run Code Online (Sandbox Code Playgroud)

(如果 shell 设置了 NOCLOBBER 选项,这将失败。)

  • 只需`> filename.txt` 就可以了,不需要`:`。或者`>> filename.txt`,如果它确实存在,我们不想把它扔掉。 (4认同)
  • @ilkkachu 虽然问题确实指定了 Bash,但使用 `:` 确实使脚本更有可能使用其他 shell 完成其任务,例如 Zsh。 (3认同)

Sap*_*ick 5

最短的方法:

>filename
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案。不能再短了。 (2认同)