3 votes

Quelle est la différence entre -exec avec '{}' ';' et -exec avec {} /; ?

En essayant d'écrire quelques scripts bash scripts, j'ai rencontré différentes utilisations du paramètre -exec. Dans mon contexte, je l'utilise après la commande find.

Ce guide indique d'utiliser {} / ; après l'exec afin de transmettre le nom du fichier et d'échapper au ; pour que la commande se termine correctement.

Ce message du forum montre l'utilisation de "{}" ' ;" au lieu de {} / ;.

J'ai essayé les deux méthodes sur Ubuntu 11.04 et seule celle avec les guillemets simples fonctionne correctement. Y a-t-il une différence entre les versions de Linux qui soit à l'origine de ce problème ? Sont-elles interchangeables ? L'une est-elle préférable à l'autre ?

3voto

Ryan Conrad Points 4635

Votre Shell peut assigner la séquence suivante {} une signification particulière (en fonction du type de Shell et même si vous êtes à l'intérieur d'un Shell Shell ou non). Pour éviter cela, vous pouvez soit le mettre entre guillemets '{}' ou s'en échapper de cette manière : \{\} (vous devez utiliser une barre oblique inverse \ au lieu d'une barre oblique / comme vous l'avez fait dans votre question).

Notez également que le message d'erreur habituel en cas d'erreur (par exemple, si vous utilisez la fonction ; 代わりに \; ) est :

find: missing argument to -exec

Voir également la section correspondante dans find page de manuel .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X