xargs
se usa comúnmente para esto, y mv
en Linux tiene un -t
opción para facilitar eso.
find ./ -name '*article*' | xargs mv -t ../backup
Si tu find
admite -exec ... \+
podrías hacer de manera equivalente
find ./ -name '*article*' -exec mv -t ../backup {} \+
El -t
opción es una extensión GNU, por lo que no es portátil para sistemas que no tienen GNU coreutils
(aunque todos los Linux adecuados que he visto tienen eso, con la posible excepción de Busybox). Para una portabilidad completa de POSIX, por supuesto, es posible lanzar su propio reemplazo, tal vez algo como
find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+
donde abusamos descaradamente del conveniente hecho de que el primer argumento después de sh -c 'commands'
termina como el parámetro "nombre del script" en $0
para que ni siquiera necesitemos shift
eso.
Probablemente vea también https://mywiki.wooledge.org/BashFAQ/020
find ./ -name '*article*' -exec mv {} ../backup \;
O
find ./ -name '*article*' | xargs -I '{}' mv {} ../backup