Qu'est-ce que la redirection avec> | faire?

16

Quand devez-vous utiliser >|pour rediriger la sortie vers un fichier au lieu de simplement >?

L'explication donnée lorsque l'on m'a montré que cela garantissait que le fichier cible était tronqué en premier. Mais je pensais >que cela impliquait déjà cela.

Est >|utile?

Angelo
la source

Réponses:

16

C'est un contournement explicite de l' noclobberoption.

De cette façon, vous pouvez remplacer le fichier même avec noclobberset.

Voir http://mywiki.wooledge.org/NoClobber

De man bash:

Si l'opérateur de redirection est> et que l'option noclobber du setin intégré a été activée, la redirection échouera si le fichier dont le nom résulte de l'expansion du mot existe et est un fichier normal. Si l'opérateur de redirection est> |, ou l'opérateur de redirection est> et que l'option noclobber de la commande set builtin n'est pas activée, la redirection est tentée même si le fichier nommé par mot existe.

Gilles Quenot
la source
8

De man bash:

         -C      If set, bash does not overwrite an  existing  file  with
                  the  >,  >&,  and <> redirection operators.  This may be
                  overridden when creating output files by using the redi
                  rection operator >| instead of >.
michas
la source