xargs
est couramment utilisé pour cela, et mv
sous Linux a un -t
option pour faciliter cela.
find ./ -name '*article*' | xargs mv -t ../backup
Si votre find
prend en charge -exec ... \+
vous pourriez faire de manière équivalente
find ./ -name '*article*' -exec mv -t ../backup {} \+
Le -t
option est une extension GNU, elle n'est donc pas portable sur les systèmes qui n'ont pas GNU coreutils
(bien que tous les Linux que j'ai vus en aient, à l'exception peut-être de Busybox). Pour une portabilité POSIX complète, il est bien sûr possible de lancer votre propre remplacement, peut-être quelque chose comme
find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+
où l'on abuse sans vergogne du fait commode que le premier argument après sh -c 'commands'
se termine par le paramètre "nom du script" dans $0
pour que nous n'ayons même pas besoin de shift
il.
Voir probablement aussi https://mywiki.wooledge.org/BashFAQ/020
find ./ -name '*article*' -exec mv {} ../backup \;
OU
find ./ -name '*article*' | xargs -I '{}' mv {} ../backup