#rsyncを用いたファイルのコピーをxargsを用いて高速化する方法をご紹介します。
#高速化したいrsync
testディレクトリを、submitディレクトリの中にコピーする。
rsync -av test submit
#上記の内容をxargsを用いて高速化するコマンド。
echo "test" | xargs -P8 -i% rsync -av --progress % submit
-P8 の部分は、pcのスペックが許す限り、-P10でもーP4でもいい。
xargsに-J%のオプションをつけることで、rsyncコマンドの%の部分にechoで出力した部分が代入される。
#余談
Linuxでできたコマンドがmacでもそのまま使えるとは限らない。
例えば、Linuxにおいて
-P0
は、xargsで可能な限り多くのプロセスでコマンドを実行するためのオプションだが、macで実行すると、
xargs: max. processes must be >0
と出て注意される。
どうやら、linuxとmacではxargsの仕様が違うらしい。