Je l'ai tapé par erreur mais bash n'a imprimé aucune erreur (mais a créé un fichier vide) alors j'ai pensé que cela signifiait peut-être quelque chose? (par exemple date |> tmp.txt)
Je l'ai tapé par erreur mais bash n'a imprimé aucune erreur (mais a créé un fichier vide) alors j'ai pensé que cela signifiait peut-être quelque chose? (par exemple date |> tmp.txt)
Réponses:
Cela semble être juste un pipeline où la deuxième partie est une commande vide, contenant uniquement la redirection. Le date | >filerédiger comme pourrait le rendre plus facile à interpréter. La commande vide ne fait rien d'autre que traiter la redirection, créant le fichier.
date >| filed'autre part agirait comme un remplacement pour l' noclobberoption shell, ce qui empêche le régulier >d'écraser les fichiers existants.
$ touch foo; set -o noclobber
$ date > foo
bash: foo: cannot overwrite existing file
$ date >| foo # works
Oui, il ne générera pas d'erreur car pour bash > filesignifie rediriger vers un fichier nommé file. Comme dans votre cas, il n'y a rien à rediriger vers un fichier, bash créera simplement un nom de fichier filesans rien.
[bd@centos-6.5 my-tests]$ date | > my_file
[bd@centos-6.5 my-tests]$ cat my_file
[bd@centos-6.5 my-tests]$
my_filecontient la sortie de date.
zsh, lorsqu'il n'y a que des redirections et aucune commande, zshexécute la $NULLCMDcommande ( catpar défaut) ou $READNULLCMD(un pager par défaut) s'il n'y a que des redirections d' entrée .
date |> tmp.txt cmd2? Parce que cela change la réponse.