Joshua Baker-LePain wrote:
On Sun, 25 Sep 2005 at 5:56pm, Kai wrote
$ tar -cvf music.tar `find ../ -name '*.mp3' -o -name '*.ogg'` | tar -xvf music.tar
Pipes direct the next command to read from stdin, but the '-f' flag to 'tar c' send its output to the named file, not stdout. A better form of the above command would be:
tar cvO `find ../ -name '*.mp3' -o -name '*.ogg'` | tar xf -
The 'O' in the first tar sends its output to stdout, and the 'f -' in the 2nd tells tar to read from stdin.
*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.