I am not sure of the internals of implementation, but in my mind 'tar'
should never overwrite a file unless with explicit permission (possibly
with an -f flag). That way whether arguments were passed in the wrong order
or a user tries to create an archive when it already exists, it should
simply fail and complain.

I don't know if the problems are technical or due to backward compatibility.

Best




On Mon, Sep 23, 2013 at 7:53 PM, Connor Behan <connor.be...@gmail.com>wrote:

> On 23/09/13 02:16 AM, Joerg Schilling wrote:
> > Pulkit Bhuwalka <pulkit.bosc...@gmail.com> wrote:
> >
> >> Hi,
> >>
> >> This is to report an issue that I have run into while using tar.
> >>
> >> *Issue* - tar destroys file when arguments are passed in wrong order
> >> leading to loss of data.
> >>
> >> *Correct tar order* - tar -cvzf "archive_file_name"
> "file_to_be_archived"
> >>
> >> *Order actually passed* - tar - cvzf "file_to_be_archived"
> >> "archive_file_name"
> >>
> >> tar ignores the fact that the "file_to_be_archived" exists and simply
> >> overwrites it, and then crashes out complaining that "archive_file_name"
> >> doesn't exist.
> > ....A problem that is known since before GNU tar exists...
> >
> > This is typical "tar" behavior and this is why "star" did never allow
> this in
> > case it was called as "star". When keeping compatibility with the SUSv2
> standard,
> > I see no easy way to work around the problem.
> >
> > Jörg
> >
> What about the patch I just sent? It would make it slightly harder to
> trigger this problem. The relevant part of the SUSv2 standard is the
> line that says archives are written from the beginning instead of after
> the last file, right? I think the patch still follows that by
> overwriting existing archives as long as it can dump a file that exists.
>
>


-- 
Pulkit

Reply via email to