This is the mail archive of the
mailing list for the Cygwin project.
RE: unzip, find broken by auto handling of .exe file extension
> From: email@example.com [mailto:firstname.lastname@example.org] On Behalf Of Stephen Anderson
> Sent: Monday, September 12, 2016 4:31 PM
> To: email@example.com
> Subject: Re: unzip, find broken by auto handling of .exe file extension
> > On Sep 12, 2016, at 4:53 PM, Marco Atzeri <firstname.lastname@example.org> wrote:
> > On 12/09/2016 21:12, Stephen Anderson wrote:
> >> Thanks Ken, good observation.
> >> -----Original Message-----
> >>> From: Nellis, Kenneth
> >>> From: Stephen Anderson >
> >>> > See also:
> >>> >
> >>> > http://stackoverflow.com/questions/32467871/unzip-gives-checkdir-error-
> >>> > directory-exists-but-is-not-a-directory#32468314
> >>> >
> >>> > The fact that 7z handles this and unzip does not indicates that the
> >>> > problem is fixable..
> >>> FWIW, it seems that the same issue is present with tar:
> >>> <Ken demonstrates broken tar handling>
> >> This means that you can't reliably extract from a tar or zip archive in
> >> cygwin.
> >> The windoze equivalents do not have this problem.
> >> It looks to me like the approach of equating filenames 'foo' and
> >> 'foo.exe' is dangerous at the stat(2) level - apparently windoze
> >> accomplishes the same trick in a much less destructive way.
> >> sja
> > This characteristics is needed as windows for historical reason
> > requested ".exe" extension for all executable files, while
> > Unix have not such restriction.
> > So "cat.exe" is recognized by cygwin also as "cat".
> > Without this feature all scripts taken by traditional Unix's will
> > be broken and cygwin will be unusable.
> > Try this experiment on Linux:
> > touch foo
> > mkdir foo
> > does it work ?
> This is not relevant, there is no foo, there is only foo.exe.
> In the case of windows _command_ processing, certain extensions are searched for automatically without creating an
> equivalency in file names. This means that for the same directory and filename hierarchy, windows and linux archive
> processing work, cygwin uniquely fails. Not a desirable outcome.
> IMHO the only time cygwin should be looking for .exe (or .cmd, .bat etc if desired), is when no match is found on
> _command_, possibly only from a shell.
Yes, one should expect that the inverse of any file archiving operation would return the original directory structure,
possibly with some alterations to permissions and ownership. I have been burned several times by the .exe handling in
tar when moving archives back and forth between Linux and Windows. I would agree that this behavior violates the
"principle of least astonishment" especially for long-time Unix users.
In the past, I have advocated the same solution you proposed. But how does this make commands like "which" and
"whereis" which take program names as arguments work properly?
> Problem reports: http://cygwin.com/problems.html
> FAQ: http://cygwin.com/faq/
> Documentation: http://cygwin.com/docs.html
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple