On Friday 09 March 2007 01:13, Les wrote: > > I have a question about du though. On the other machine where I wanted to > > find out the size of my soundfiles directory, du couldn't access it > > because it was named "Sounds Library" , without the quotes. I renamed it > > putting a hyphen between the 2 words, and then du accessed the directory > > ok, but all of the subdirectories are multi worded without any hyphens, > > and du didn't have any problem with them. Any reason why du will not > > access the main directory without hyphenated words, and yet has no > > problem with all the subdirectories? > > > > It's not a big deal, just puzzling. > > > > btw. The now Sounds-Library (with the hyphen) is on a separate harddrive > > so I have to run du as. > > > > du -sh /mnt/hdb5/Sounds-Library > > Hi, Nigel, > The reason a command won't parse correctly with a space in the file > name is due to the tokenizer used by the shell. It cannot deal with > spaces in filenames. A space is the end of the word to the tokenizer > unless it is inside Quotes or escaped in some way. Thus the command du > xxx yyy is going to look for files xxx and then yyyy. This is true of > most systems. otherwise there would be no way to chose which way to > parse a command with several arguments, for example: > cat xxx yyy aaa bbb ccc ddd > temp.txt > > In this case should the result consist of files xxx, yyy, zzz, bbb, > ccc, and ddd all being concatenated to a file called temp.txt, or should > it be xxx yyy, zzz bbb, and ccc ddd? Moreover how would an unambiguous > error message tell the operator what was wrong? What if files xxx, yyy > zzz, bbb zzz, and ddd were all present? Is this what the operator > meant? > This is why a good administrator doesn't put spaces in system control > files. It leads to ambigousity when working on the system, leading to > errors and system corruption. Typo's that would be caught might not be > if spaces are allowed into filenames. > > On the other hand, once a directory is opened, the file names are read > via a special command designed for the OS, and if the OS permits spaces, > the entire file name up to the end charactor (generally control-Z or > NULL). Thus the sub directories and files will be correctly handled. > But with spaces in the names, error messages regarding parsing, or > tracing the file contents may be ambiguous to the operator. It is not > illegal to put spaces in filenames, but is should be considered a bad > practice, and avoided. But it is your system, so YMMV. > > Regards, > Les H Thanks Les for that very thorough explanation. I will be more carefull about spaces in the future. A related question, is. How do I find out how many files are in the Sounds-Library directory, including all subdirectories. I looked at ls, but that will only give a list of files, as far as I can see. Thanks. Nigel.