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
-
touch filename.txt
- Possible duplication de Comment créer un simple fichier .txt (texte) à laide du terminal?
- voir aussi Pourquoi ' ny a-t-il pas de commande shell pour créer des fichiers?
Réponse
Utilisez touch
comm et. touch filename.txt
.
Commentaires
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.
echo -n >file
echo -n "" > filename
videra le fichier sil existe ou créera un fichier sil ne le fait pas ' t existent.