On Tue, 29 Mar 2011, Ole Tange wrote:

While I loved Hans' idea, it does indeed have a race condition. This
should run 'ls -l' on each file after decompressing and clearly fails
now and then:

$ tar xvf ../i.tgz | parallel ls -l > ls-l
ls: cannot access 1792: No such file or directory

But you could unpack in a new dir and use:
http://www.gnu.org/software/parallel/man.html#example__gnu_parallel_as_dir_processor

A solution could be to print #1 file name when you got #2 file name. As tar files is a stream (sequence), #1 is written to disk when #2 name comes to the output. Something like:
  tar xvf x.tgz | ./print-1-when-got-2.pl | parall....



Joke of the week:
You could also use strace and look for 'close', try:
  strace -eopen,close tar xf x.tgz

Pipe the output to a perl script and print the file name when you get the close command ;-)

/hans
--
Horsebakken 78, DK-2400 København NV

Reply via email to