On Fri, 12 Feb 2010, Emmanuel Lacour wrote: > coreutils 6.10-6 (debian lenny x86 32bit) > > when we use "dirname /full/directory/path/" we get "/full/directory/", > but documentation say: > > dirname - strip non-directory suffix from file name > ^^^^^^^^^^^^^^^^^^^^ > > so either there is a need to update the documentation to say it is > removing the last component (wether it's a dir or a file) or fix dirname > so it returns "/full/directory/path/".
It's not the way I would have done it (not that I ever use an external command for something that can be done in the shell itself), but the POSIX spec for dirname says that any trailing slashes are removed before anything else is done: 1. If string is //, skip steps 2 to 5. 2. If string consists entirely of <slash> characters, string shall be set to a single <slash> character. In this case, skip steps 3 to 8. *** 3. If there are any trailing <slash> characters in string, they shall be removed. 4. If there are no <slash> characters remaining in string, string shall be set to a single <period> character. In this case, skip steps 5 to 8. 5. If there are any trailing non- <slash> characters in string, they shall be removed. 6. If the remaining string is //, it is implementation-defined whether steps 7 and 8 are skipped or processed. 7. If there are any trailing <slash> characters in string, they shall be removed. 8. If the remaining string is empty, string shall be set to a single <slash> character. -- Chris F.A. Johnson <http://cfajohnson.com> =================================================================== Author: Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress) Pro Bash Programming: Scripting the GNU/Linux Shell (2009, Apress)