This paper presents an interface specification and an efficient implementation of a general purpose library routine, ftwalk, to traverse a UNIX * file system hierarchy. A number of standard file system utilities, e.g., find, ls, rm, and others have been reimplemented using ftwalk. The total source code size is 30 % smaller and the efficiency of all commands improves. More importantly, these commands now handle the file system search in a uniform, robust, and secure manner. New tools have been built with ftwalk. A file system perusing tool, tw, will be described. tw subsumes the functionality of find and xargs. Further, it provides a powerful expression language with a syntax similar to C. For typical applications in which commands are executed on generated file names, tw is 5 to 10 times faster than find. The combination of a powerful language and performance efficiency in tw should reduce the practice of adding directory recursion to commands. 1.