&>
et >&
semi-équivalence (clobber)
La zsh
section des redirections manuelles indique que:
sont équivalents.
Les deux vont encombrer le fichier - tronquer le fichier à 0 octet avant d'écrire dessus, comme ce > file
serait le cas dans le cas STDIN uniquement.
Cependant , la bash
section des redirections manuelles ajoute que:
Des deux formes, la première est préférée. C'est sémantiquement équivalent à
>word 2>&1
Lorsque vous utilisez le deuxième formulaire, le mot peut ne pas se développer en un nombre ou -
. Si tel est le cas, d'autres opérateurs de redirection s'appliquent (voir Duplication des descripteurs de fichiers ci-dessous) pour des raisons de compatibilité.
Ainsi, pendant que vous balisez zsh
, il est probablement judicieux d'obtenir la mémoire des doigts sous la première forme si jamais vous écriviez un bash
script.
>> logfile 2>&1
et &>>
équivalence (en annexe)
Ici, logfile
n'est pas écrasé, mais ouvert pour l'écriture à la fin du fichier, c'est-à-dire en mode ajout ( O_APPEND
).
L'équivalent dans les deux {ba,z}sh
est:
command1 &>> logfile
Dans bash
:
Le format pour ajouter la sortie standard et l'erreur standard est:
&>>word
C'est sémantiquement équivalent à
>>word 2>&1
(voir Duplication des descripteurs de fichiers ci-dessous).
(Remarque: l'utilisation clobber de &>
over >&
dans la section ci-dessus est à nouveau recommandée étant donné qu'il n'y a qu'une seule façon de l'ajouter bash
.)
zsh
permet à la fois &>>
et >>&
formes.