Pour apporter des ajouts et des clarifications à certaines des autres réponses, si vous utilisez l'option bulk pour execou execdir( -exec command {} +) et que vous souhaitez récupérer tous les arguments de position, vous devez envisager la gestion de $0with bash -c. Plus concrètement, considérez la commande ci-dessous, qui utilise bash -ccomme suggéré ci-dessus, et fait simplement écho aux chemins de fichiers se terminant par '.wav' de chaque répertoire qu'il trouve:
find "$1" -name '*.wav' -execdir bash -c 'echo $@' _ {} +
Le manuel bash dit:
If the -c option is present, then commands are read from the first non-option argument command_string.  If there are arguments after the command_string, they  are  assigned  to  the
                 positional parameters, starting with $0.
Voici 'check $@'la chaîne de commande et _ {}les arguments après la chaîne de commande. Notez qu'il $@s'agit d'un paramètre de position spécial dans bash qui s'étend à tous les paramètres de position à partir de 1 . Notez également qu'avec l' -coption, le premier argument est affecté au paramètre positionnel $0. Cela signifie que si vous essayez d'accéder à tous les paramètres de position avec $@, vous n'obtiendrez que les paramètres commençant par $1et plus. C'est la raison pour laquelle la réponse de Dominik a le _, qui est un argument factice pour remplir le paramètre $0, donc tous les arguments que nous voulons sont disponibles plus tard si nous utilisons l' $@expansion des paramètres par exemple, ou la boucle for comme dans cette réponse.
Bien sûr, similaire à la réponse acceptée, bash -c 'shell_function $0 $@'cela fonctionnerait également en passant explicitement $0, mais encore une fois, vous devez garder à l'esprit que $@cela ne fonctionnera pas comme prévu.
               
              
$0.