On 2012-07-12 17:48, Eric Blake wrote: > On 07/12/2012 08:37 AM, Stefano Lattarini wrote: > >>>> Agreed (albeit it does its dirty work for now). Any suggestion on >>>> how to make it more reliable? >>> >>> Is test /usr/bin/CC -ef /usr/bin/cc portable enough? >>> >> I have no idea ... it seems to work on Cygwin 1.5 though. > > In general, 'test a -ef b' is not portable - it is not required by POSIX > 2008 (although it has been proposed for a future version of POSIX). But > on Cygwin, /bin/sh happens to support it. If you can guarantee that you > are already on cygwin before using -ef, then this would work; or maybe > if you pre-filter with 'test . -ef .' to ensure that -ef is understood, > before then trying -ef to check for case insensitivity.
> Other than that, the only supported method in existing POSIX for > checking for equal files is by parsing 'ls -i' output; but I don't know > if 'ls -i' is portable to ancient hosts. if test -z `ls -i /usr/bin/cc /usr/bin/CC | sed 'N; /^\( *[^ ]* \).*\n\1/!s/.*//; s/..*/same/'`; then echo "sensible aka sensitive" fi But that of course relies on a working ls -i, as well as its formatting... Cheers, Peter