Charles Howse wrote on Saturday, November 26, 2005: >$ find ~/bin -name \*.sh -maxdepth 1 -perm 0644 -exec chmod 744 {} \; > >This works as expected (I found the '\;' part on a web site), but I'm not >sure why I have to use the '\' as the next-to-last character. >Can't find anything about it in 'man find'. >Can anyone enlighten me? The semicolon syntax is clearly documented in each argument that takes a variable number of arguments: -exec utility [argument ...]; ... Optional arguments may be passed to the utility. The expression must be terminated by a semicolon (``;''). ... ... -execdir utility [argument ...]; -ok utility [argument ...]; -okdir utility [argument ...]; ... The fact that you have to escape a semicolon on the command line is an issue with the shell you are using, not find. Although that fact is still noted in find's man page: BUGS The special characters used by find are also special characters to many shell programs. In particular, the characters ``*'', ``['', ``]'', ``?'', ``('', ``)'', ``!'', ``\'' and ``;'' may have to be escaped from the shell. >If I missed it in 'man find', please point me to the correct section. :-) Man pages are sometimes hard to read, but after this many years the core ones are pretty complete, having been picked over by a thousand software engineers. -- James Bucanek