tar with pipe

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



On Sun, 25 Sep 2005 at 6:52pm, Kai wrote

> Joshua Baker-LePain wrote:
>> 
>> *However*, that will keep the directory structure.  Why not just use cp?
>> 
>> find ../ -name '*.mp3' -o -name '*.ogg' -print0 | xargs -0 -i cp \{} .
>> 
> Thank you for explaining, cp would be find, but I don't understand your 
> arguments after the pipe.
> Please explain..
>
> I have tried to use find ....... -exec cp {}\; but cant get anything working 
> using the cp in this type of command.

xargs takes whatever comes in stdin and puts in after the commands which 
follow it.  If you give 'xargs' the '-i' flag, it instead takes what comes 
in on stdin and puts it whereever you put the '\{}' (note the location of 
the \).  'find | xargs' is *much* faster than 'find -exec' b/c you're not 
spawning a new process for every hit.  The '-print0' to find and '-0' to 
xargs use nulls to delimit each entry rather than whitespace -- this lets 
the command work on files/directory names with spaces in them.

-- 
Joshua Baker-LePain
Department of Biomedical Engineering
Duke University

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux