web-dev-qa-db-ja.com

bashスクリプトで新しい空のファイルを作成するにはどうすればよいですか?

出力フラグ-oの出力ファイルを必要とするように記述されたサードパーティのPerlスクリプトを実行しています。

残念ながら、スクリプトには実際のファイルが必要なようです。つまり、ユーザーは0バイトの空のファイルfilename.txtを作成し、この空のファイルをスクリプトのコマンドラインに入力する必要があります。

Perl script1.pl -o filename.txt

質問:bashスクリプト内で空のファイルを作成するにはどうすればよいですか?単にPerl script1.pl -o filename.txtを試すと、スクリプトはファイルが存在しないというエラーを出します。

19
ShanZhengYang

touchコマンドを使用します。 touch filename.txt

29
MKT

Nullコマンド(:)リダイレクト(> filename) 騙す (:>)、これはゼロに切り捨てられるか、指定されたファイルを作成するためです。

$ echo foo > filea
$ :> filea
$ wc -c filea
       0 filea
$ rm filea
$ :> filea
$ wc -c filea
       0 filea

(シェルがNOCLOBBERオプションを設定すると、これは失敗します。)

6
thrig

常にPerlも使用できます。

$ stat filename.txt
stat: cannot stat 'filename.txt': No such file or directory
$ Perl -e 'open($fh,">","filename.txt") or die $!;close($fh)'                                         
$ stat filename.txt                                                                                   
  File: 'filename.txt'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 280728      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ xieerqi)   Gid: ( 1000/ xieerqi)
Access: 2017-02-08 13:51:01.479121995 -0700
Modify: 2017-02-08 13:51:01.479121995 -0700
Change: 2017-02-08 13:51:01.479121995 -0700
 Birth: -
3