xargs
se k tomu běžně používá a mv
v systému Linux má -t
možnost, jak to usnadnit.
find ./ -name '*article*' | xargs mv -t ../backup
Pokud je vaše find
podporuje -exec ... \+
můžete ekvivalentně udělat
find ./ -name '*article*' -exec mv -t ../backup {} \+
-t
volba je rozšíření GNU, takže není přenosná na systémy, které nemají GNU coreutils
(ačkoli každý správný Linux, který jsem viděl, to má, snad s výjimkou Busyboxu). Pro úplnou přenositelnost POSIX je samozřejmě možné vytvořit vlastní náhradu, možná něco jako
find ./ -name '*article*' -exec sh -c 'mv "[email protected]" "$0"' ../backup {} \+
kde bezostyšně zneužíváme výhodný fakt, že první argument po sh -c 'commands'
skončí jako parametr "název skriptu" v $0
takže ani nepotřebujeme shift
to.
Pravděpodobně viz také https://mywiki.wooledge.org/BashFAQ/020
find ./ -name '*article*' -exec mv {} ../backup \;
NEBO
find ./ -name '*article*' | xargs -I '{}' mv {} ../backup