cannot create files with trailing dots on network share
Douglas Seay
seay_douglas@emc.com
Thu Mar 18 23:14:00 GMT 2010
I’ve had some problems, and it looks like it boils down to handling .
(dot) characters. I created a little script to create some files with
dots in various places. This script works fine in my $HOME directory
(C:\cygwin\home\SEAYD). The name is wrong when the last character of
the filename is a dot and subdir is on a network share (H: in this
case). The rest of the file operations seem to work because when I cat
them, you can see the file name inside the body (yes, I left of the \n).
Is there a known work around for this?
> /cygdrive/h/foo> ./fubar
> mkdir subdir
> create subdir/none
> create subdir/in.middle
> create subdir/.before
> create subdir/after.
> create subdir/.every.where.
> finished successfully
> /cygdrive/h/foo> ls -al subdir
> total 5120
> drwxr-xr-x+ 1 ???????? ???????? 0 2010-03-18 18:31 .
> drwxrwxrwx 7 ???????? ???????? 0 2010-03-18 18:31 ..
> -rwxr--r-- 1 ???????? ???????? 7 2010-03-18 18:31 .before
> -rwxr--r-- 1 ???????? ???????? 6 2010-03-18 18:31 ARO60A~X
> -rwxr--r-- 1 ???????? ???????? 13 2010-03-18 18:31 _IQDF8~T
> -rwxr--r-- 1 ???????? ???????? 9 2010-03-18 18:31 in.middle
> -rwxr--r-- 1 ???????? ???????? 4 2010-03-18 18:31 none
> /cygdrive/h/foo> cat subdir/ARO60A~X
> after./cygdrive/h/foo> cat subdir/_IQDF8~T
> .every.where./cygdrive/h/foo>
A bit more background: I’m trying to use cvs and I’m getting errors. I
cannot tell if this is the same issue as is going back and forth on the
mailing list right now, or if I’ve bumped into something else. When I
ran my “cvs co” with strace, I see what appears to be CVS getting the
files in temp names that have a lot of dots, and then doing a rename
after the file has downloaded. The download seems to work, but it puts
the file in an incorrectly named temp file, and then the rename to the
proper name is what fails and causes the error. Since that doesn’t
really sound cvs specific (ie – it should work), I went off and
reproduced it outside of CVS.
In case I’m not clear, this is cygwin 1.7.1. Mostly I’ve been using
Server 2008.
- doug
Here is the perl script “fubar” that I used to generate these files,
just in case it matters. It really isn't fancy.
> #!/bin/perl
>
> use strict;
> use warnings;
>
> my $SUBDIR = 'subdir';
> my @TEST_CASES = qw( none
> in.middle
> .before
> after.
> .every.where.
> );
>
> print "mkdir $SUBDIR\n";
> mkdir $SUBDIR unless ( -d $SUBDIR );
> chdir $SUBDIR or die "chdir($SUBDIR) failed: $!";
>
> foreach my $filename ( @TEST_CASES ) {
> print "create $SUBDIR/$filename\n";
> open TESTCASE, ">$filename" or die "error opening $filename: $!";
> print TESTCASE $filename;
> close TESTCASE;
> }
>
> print "finished successfully\n";
--
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
More information about the Cygwin
mailing list