Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month at the Massachusetts Institute of Technology, in Building E51.

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] GNU xargs trick



Very cool!  I've used xargs for many years, but I never knew about the 
-I or -P options.  Are they only in the GNU implementation, or have they 
been ported to other platforms?

    Mark Rosenthal


On 4/27/16 10:25 AM, Rich Pieri wrote:
> There is a trick to GNU xargs that lets you easily parallelize
> processes. The particular use I discovered is for optimizing directories
> full of PNG files using optipng. I first looked at GNU parallel but it's
> way overkill for what I want. I found a couple of scripts that do some
> tricks with & and lock files but those ran into problems with
> complex-ish commands. Then I learned about the xargs trick:
>
> find . -name "*.png" -print | xargs -I{} -P 4 optipng -o1 -preserve {}
>
> The find part should be obvious, xargs maybe not so much. -I enables
> substitution. Whenever the string following -I appears it is replaced
> with the the line from stdin. -P 4 says to run a maximum of 4 processes;
> the default is 1. Everything after is the optipng command with {}
> replaced with each line from the find command.
>
> I dunnow if this has ever come up on the list but it's been quiet lately
> and I figured it's a cool enough trick to share.
>




BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org