This is the mail archive of the
mailing list for the Cygwin project.
Re: Filesystem Filename touch fail [ was: PLEASE TEST YOUR FS ]
On Wed, 7 Apr 2010, Morgan Gangwere wrote:
On 4/7/2010 4:07 PM, Charles Wilson wrote:
One is a simple shared NTFS drive, I think (volinfo-1.txt). The
other is a weird distributed filesystem of some kind
Both are NTFS unless one is not.
$ touch foo.
touch: cannot touch `foo.': No such file or directory
$ touch " foo "
touch: cannot touch ` foo ': No such file or directory
Both of those are invalid under NTFS FS specifications:
"Filenames may contain any character other than NULL (0x0000) but
may not contain a space (ASCII 0x20, ' ') or period ('.')"
Where did you get that sentence?! Googling found nothing but your
e-mail message. That can't possibly be true for NTFS. NTFS takes
spaces in directories (C:\Program Files\) and filenames
(...\Budget 2009.doc) perfectly well. On a Windows XP system, I just
created a file named "C:\download\MySQL\foo bar.baz.txt" just fine:
created in Explorer, edited in Notepad, typed in CMD.
Windows in kernel-space defines this restriction (as defined by Wikipedia):
Microsoft Windows: Windows kernel forbids the use of
characters in range 1-31 (i.e., 0x01-0x1F) and characters " * : < >
? \ / |. ...These restrictions only apply to Windows - Linux, for
example, allows use of " * : < > ? \ / | even in NTFS.
Though / cannot be used in _filenames_ in Linux -- it's always a
Since 'touch foo.' would result in doing an fileopen("foo.") this
would be considered "bad" by Windows AND Linux ( I mounted an NTFS
Partition and tried 'touch foo.' and was denied it)
In Linux using a Linux filesystem, it doesn't care in the slightest
about periods. In Windows in CMD and Explorer, an attempt to rename
"C:\download\MySQL\foo bar baz" to
"C:\download\MySQL\foo bar baz." simply caused the trailing "." to be
Tim McDaniel, email@example.com
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple