Comment créer un nouveau fichier vide dans un script bash?

Jexécute un script Perl tiers écrit de telle sorte quil nécessite un fichier de sortie pour lindicateur de sortie, -o.

Malheureusement, le script semble nécessiter un fichier réel, cest-à-dire que les utilisateurs doivent créer un fichier vide filename.txt avec 0 octet, puis saisir ceci fichier vide sur la ligne de commande du script

perl script1.pl -o filename.txt 

Question: Comment créer un fichier vide dans un script bash? Si lon essaie simplement perl script1.pl -o filename.txt, le script indique que le fichier nexiste pas.

Commentaires

Réponse

Utilisez touch comm et. touch filename.txt.

Commentaires

  • echo -n >file
  • faites attention – cela ne videra pas votre fichier sil existe déjà
  • En fait, jai essayé de toucher et " echo -n > file " dans mon script bash mais jobtiens une erreur lorsque jexécute le script: " Aucun fichier de ce type ou répertoire " sur cette ligne. Quelquun peut-il aider sil vous plaît?
  • echo -n "" > filename videra le fichier sil existe ou créera un fichier sil ne le fait pas ' t existent.

Réponse

Utilisez la commande null (:) rediriger (> filename) astuce (:>), car cela tronquera à zéro ou créera le fichier nommé.

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

(Cela échouera si le shell définit une option NOCLOBBER.)

Commentaires

  • Si noclobber est défini, utilisez la redirection >| pour clobber, donc :>| filea – documenté dans le manuel
  • Juste > filename.txt ferait laffaire, pas besoin de :. Ou >> filename.txt si nous ' ne voulons pas le mettre à la poubelle sil existe.
  • @ilkkachu bien que la question spécifie Bash, lutilisation de : rend le script plus susceptible daccomplir sa tâche avec dautres shells, par exemple Zsh.

Réponse

Vous pouvez toujours utiliser perl aussi.

$ 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: - 

Réponse

Le chemin le plus court:

>filename 

Commentaires

  • Meilleure réponse. ' t être plus court.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *