&>et >&semi-équivalence (clobber)
La zshsection des redirections manuelles indique que:
sont équivalents.
Les deux vont encombrer le fichier - tronquer le fichier à 0 octet avant d'écrire dessus, comme ce > fileserait le cas dans le cas STDIN uniquement.
Cependant , la bashsection 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 bashscript.
>> logfile 2>&1et &>>équivalence (en annexe)
Ici, logfilen'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}shest:
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.)
zshpermet à la fois &>>et >>&formes.