xargs
è comunemente usato per questo, e mv
su Linux ha un -t
opzione per facilitarlo.
find ./ -name '*article*' | xargs mv -t ../backup
Se il tuo find
supporta -exec ... \+
potresti fare in modo equivalente
find ./ -name '*article*' -exec mv -t ../backup {} \+
Il -t
opzione è un'estensione GNU, quindi non è portabile su sistemi che non hanno GNU coreutils
(sebbene ogni vero Linux che ho visto lo abbia, con la possibile eccezione di Busybox). Per la completa portabilità POSIX, è ovviamente possibile creare il proprio sostituto, magari qualcosa del genere
find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+
dove abusiamo spudoratamente del fatto conveniente che il primo argomento dopo sh -c 'commands'
finisce come parametro "script name" in $0
in modo che non abbiamo nemmeno bisogno di shift
esso.
Probabilmente vedi anche https://mywiki.wooledge.org/BashFAQ/020
find ./ -name '*article*' -exec mv {} ../backup \;
O
find ./ -name '*article*' | xargs -I '{}' mv {} ../backup