パラレルをxargsコマンドに変換

パラレルをxargsコマンドに変換

このコマンドを並列性を使用しないコマンドに変換しようとしています。

find . -type f -iregex '.*.ts\|.*.js\|.*.tsx\|.*.jsx' | parallel 'touch {} -d "$(date -d \@$((0x$(md5sum {} | cut -b 1-7))))"'

私が思いついたことはうまくいきません。

find . -type f -iregex '.*.ts\|.*.js\|.*.tsx\|.*.jsx' -print0 | xargs -0 md5sum | cut -b 1-7 | xargs -0 -I {} touch -d \@0x{}

私が達成したいのは、キャッシュの目的でファイルのmtimeをmd5sumに設定することです。

ベストアンサー1

スクリプトを変換する理由を書いていません。おそらく、スクリプトがGNU Parallelに依存しないことを望むかもしれません。

この場合、parallel --embedGNU Parallelをシェルスクリプトに含めることに興味があるかもしれません。

parallel --embed > newscript

次に端を編集しますnewscript

newscriptその後、GNU Parallelがインストールされていないコンピュータで使用できます。

--embedバージョン20180322から利用可能です。

おすすめ記事