From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 14 Apr 1998 11:08:16 +0200 From: Elliott.Hughes@genedata.com Elliott.Hughes@genedata.com Subject: [9fans] allowing space (ASCII 0x20) in file names Topicbox-Message-UUID: 750b645e-eac8-11e9-9e20-41e7f4b1d025 Message-ID: <19980414090816.TfbLVakV6iczOgogKLneV-F-VVzTXgdzFplOiKMm1vY@z> Tom Duff wrote: > On Apr 8, 1:08pm, Russ Cox wrote: > > i don't know the official reasons that space isn't allowed, > > but in general file names with spaces (which you have to deal > > with in Unix and Windows) are a pain for oodles of reasons. the most > > noticeable one is that it messes up scripts and the like: > > ls -l | awk '{print $10}' is no longer guaranteed to give > > you filenames. > ... characters other than letters, digits, > underscore, minus, plus and dot were so little used that > forbidding them would not impact any important use of the > system. Obviously people stick to those characters to > avoid colliding with the shell's syntax characters. I suggested > (or at least considered) formalizing the restriction, specifically > to make file names easier to find by programs like awk. An alternative (taken by a friend of mine in his modified version of the other rc) is to make the shell glob more carefully. So the file called "Hello World" globbed as Hello' 'World (in a use of free careting that I never liked). Actually, free careting means that rc is the shell in which it's least painful to deal with spaces in filenames: you don't need to go back to the start of the filename to insert the quote character that you forgot. You could easily change the utilities to output filenames in this protected form. [Personally I thought that '/' as directory separator was a bad choice compared to DOS' '\\'. I've never seen anyone want to use '\\' in a filename, but I've seen plenty want to use '/'.] But I think this is missing the point. Filesystems in the 9P mode are for programmers, not for users. No-one really cares whether they have 27 bytes worth of filename or 255 ISO-Latin-1 characters, or even what the computer has to do to to ensure you can have chess symbols in filenames: all they're bothered about is whether or not they can find their files again. Is a simple name the best way to do this? I'm not convinced that it is. If you want to implement a collection of repulsive protocols that assume a certain implementation, write some library functions or a user-level filesystem to provide this functionality. Despite what the advertising may have claimed, having 31-character names or even 255-character names is neither here nor there. -- http://users.ch.genedata.com/~enh/