Use o comando touch
. touch filename.txt
.
Estou executando algum script Perl de terceiros escrito de forma que exija um arquivo de saída para o sinalizador de saída, -o
.
Infelizmente, o script parece exigir um arquivo real, ou seja, os usuários devem criar um arquivo vazio filename.txt
com 0 bytes e, em seguida, inserir esse arquivo vazio na linha de comando do script
perl script1.pl -o filename.txt
Pergunta: Como eu criaria um arquivo vazio dentro de um script bash? Se alguém simplesmente tenta perl script1.pl -o filename.txt
, o script dá um erro que o arquivo não existe.
Use o truque de comando nulo ( :
) de redirecionamento ( > filename
) ( :>
), pois isso truncará para zero ou criará o arquivo nomeado.
$ echo foo > filea
$ :> filea
$ wc -c filea
0 filea
$ rm filea
$ :> filea
$ wc -c filea
0 filea
(Isso falhará se o shell definir uma opção NOCLOBBER).
Você também pode usar perl também.
$ 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: -
Tags bash files shell shell-script