On Sun, 26 Feb 2006, Mike Miller wrote:
> On Sun, 26 Feb 2006, Brian Hurt wrote:
>
>> On Sun, 26 Feb 2006, Ed Wilts wrote:
>>
>>> On Sun, Feb 26, 2006 at 08:36:39AM -0600, Jordan Peacock wrote:
>>>> Quick question: I have a whole ton of .tar files I need to extract,
>>>> but when I try 'tar -xvf *.tar' it doesn't work.... what am I doing
>>>> wrong?
>>>
>>> Try:
>>>
>>> find . -name '*.tar' -exec tar xvf {} \;
>>
>> That will extract all tar files in the current directory and all
>> directories under it. Which may be the behavior desired- but may not be.
>> My for loop only extracts the tar files in the current directory.
>
>
> Right. And you have to be careful with tar files about what they are putting
> out. One might have contents that write over those of another one. Does
> each one produce a unique directory and put all files in that directory? The
> for loop is safer, but you should know before you run it what those tar files
> contain.
The nice thing about a for loop is that you can do more stuff inside a for
loop than just a single command. For example, if you wanted to create a
directory for each tar file, and untar it into it's own directory, you
might do:
for i in *.tar; do
mkdir `basename $i .tar`.dir
cd `basename $i .tar`.dir
tar xvf ../$i
cd ..
done
Brian