Я хочу переместить большой набор файлов, используя find
и xargs
.Обычно я делаю это:
find /foo -name 'bar*' | tr '\n' ' ' | xargs -I % echo mv % /dest
Однако, когда слишком много файлов для перемещения, я достигаю предела количества аргументов для передачи mv
.xargs
имеет -n
, что, кажется, было бы идеально для этого:
$ echo {0..9} | xargs -n 3 echo
0 1 2
3 4 5
6 7 8
9
Однако -I
подразумевает -L 1
, поэтому я не могу использовать -I
с -n
:
$ echo {0..9} | xargs -n 3 -I % echo % /dest
0 1 2 3 4 5 6 7 8 9 /dest
Я надеялся на такое поведение:
$ echo {0..9} | xargs -n 3 -I % echo % /dest
0 1 2 /dest
3 4 5 /dest
6 7 8 /dest
9 /dest
Возможно ли это с xargs
?У меня нет GNU Parallel на моих машинах.