Path: utzoo!attcan!uunet!virtech!cpcahil From: cpcahil@virtech.uucp (Conor P. Cahill) Newsgroups: comp.unix.shell Subject: Re: Why use find? (Was: Can U pipe filenames to rm???) Message-ID: <1990Oct06.011438.8265@virtech.uucp> Date: 6 Oct 90 01:14:38 GMT References: <28790001@col.hp.com> <1977@sixhub.UUCP> <1990Sep30.182331.14363@iconsys.uucp> <941@hls0.hls.oz> <1990Oct5.145825.9454@diku.dk> Reply-To: cpcahil@virtech.UUCP (Conor P. Cahill) Organization: Virtual Technologies Inc., Sterling VA Lines: 44 In article <1990Oct5.145825.9454@diku.dk> kimcm@diku.dk (Kim Christian Madsen) writes: >george@hls0.hls.oz (George Turczynski) writes: > >>Why use `xargs' when you don't need to ? > >There are a lot of uses of xargs that are superior to using find with the >exec option. Find is *SLOW*, so if you have the names of files you want to >do something with in a file or pipe use xargs for performance. Find, in itself, is not slow. The exec of a new process (the rm in this case) for every file found is *SLOW*. Obviously, if you already have the list of files you don't need to run find to get them again. >Find is also complicated to use for non-trivial tasks, and the syntax is >often confusing to non-wizards, so specialized shell-scripts or programs >are often more intuitive and faster to create and maintain. This is getting into a typical religous issue, so I won't say much in response other than the fact that if someone knows enough about the system to creat shell scripts and/or programs it behooves them to take an extra few minutes to learn find. Find in itself is not complicated (just some name selection logic) and should be one of the tools that anyone writing shells is intimately aware of. (BTW - I am one of the people that believe you shouldn't be allowed to write any shell scripts until you have made a complete pass through sections 1 & 1m (or 8, depending upon your OS) AND you should repeat this on a regular basis). As an aside, most of the specialized shell scripts that you mentioned will usually run a find as part of the script anyway. >All this is not to bash find(1), which is a wonderful, general tool, however >the multitude of UNIX tools gives you the choice of selecting the one, >most appropriate for your task and the one you're most familiar with. But to make the correct selection you should be aware of most, if not all, of the tools available (nothing is better than an educated decision). -- Conor P. Cahill (703)430-9247 Virtual Technologies, Inc., uunet!virtech!cpcahil 46030 Manekin Plaza, Suite 160 Sterling, VA 22170