Walt Mankowski on 29 Jul 2015 19:48:33 -0700


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

Re: [PLUG] xargs guide


On Wed, Jul 29, 2015 at 09:43:54PM -0400, Steve Litt wrote:
> Hi all,
> 
> xargs is a gender-changer type program that adapts one program's stdout
> to the next program's command line arguments. It's extremely handy for
> shell scripting, but it can be tricky. I've written a short guide for
> xargs that shows how to get around the usual xargs landmines:
> 
> http://www.troubleshooters.com/linux/xargs.htm
> 
> Hope you like it.

I also use xargs all the time.  This is a nice tutorial, but I have a
few comments on it:

* There's a typo on the very first line. It should be "Its", not
  "It's".

* Why is the font so big?  I think it makes it hard to read.

* The image link below "The following diagram illustrates the adapter
  idea" is broken.

* I found it interesting that you put such an emphasis on
  --max-lines=1.  I've never used that option.  I didn't even know
  that WAS an option.  The main reason I use xargs is to construct
  giant command lines.

  Here's an example.  Last week I had to change the permissions on a
  large number of TIF files spread across dozens of subdirectories.
  The first thing I tried was

  $ chmod 664 **/*.tif

  but I got an error that my command line was too long.  Then I ran

  $ find . | grep 'tif$' | wc

  and saw that there were over 3 million files.  So I ran

  $ find . | grep 'tif$' | xargs chmod 664

  When you run it this way, xargs will call chmod repeatedly, each
  time with as big of a command line as your system will support.
  It's far more efficient than forking chmod for each of 3 million
  files.

* I don't know how I missed the --max-procs parameter.  I'm definitely
  going to have to try that out next time.

Walt

Attachment: signature.asc
Description: Digital signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug