Je recopie ici la commande (un peu adaptée) pour obtenir :
.abc
./path
et ses sous-répertoires.find /path -regex ".*/.*\.abc" -exec ls -l {} \; | awk '{ Total += $5} END { print Total }'
Note : d'autres exemples existent avec la commande du
. Cependant l'option du -b
ne semble pas fonctionner sur tous les shells.
Une petite particularité des shell dérivés du shell sh.
Il existe la commande : (deux-points). Et elle ... ne fait rien! Ou plus exactement, elle agit comme un non-opérande.
Quand on la "lance", elle retourne un code d'erreur 0:
$ :
$ $?
$ 0
Alors à quoi ça sert?
Dans les vieilles version des shell, cette commande est utilisée en remplacement de la commande "true" (qui n'existait pas).
Alors on peut voir des choses comme:
if commande; then
:
else
autre-commande
fi
Ou avec un double pipe en fin de commande, pour envoyer un code d'erreur 0:
commande || :
Sympa à savoir si on travail à décortiquer de vieux scripts.
Edit: sur le même sujet https://superuser.com/questions/423980/colon-command-for-bash