xargs
wird üblicherweise dafür verwendet und mv
unter Linux hat einen -t
Option, um dies zu erleichtern.
find ./ -name '*article*' | xargs mv -t ../backup
Wenn Ihr find
unterstützt -exec ... \+
könntest du genauso machen
find ./ -name '*article*' -exec mv -t ../backup {} \+
Die -t
Option ist eine GNU-Erweiterung, daher ist sie nicht auf Systeme portierbar, die nicht über GNU coreutils
verfügen (obwohl jedes richtige Linux, das ich gesehen habe, das hat, mit der möglichen Ausnahme von Busybox). Für vollständige POSIX-Portabilität ist es natürlich möglich, Ihren eigenen Ersatz zu rollen, vielleicht so etwas wie
find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+
wo wir schamlos die praktische Tatsache missbrauchen, dass das erste Argument nach sh -c 'commands'
endet als Parameter "Skriptname" in $0
sodass wir nicht einmal shift
brauchen es.
Siehe wahrscheinlich auch https://mywiki.wooledge.org/BashFAQ/020
find ./ -name '*article*' -exec mv {} ../backup \;
ODER
find ./ -name '*article*' | xargs -I '{}' mv {} ../backup