Date: Mon, 17 Dec 2001 22:43:44 +1100 From: Edwin Groothuis <edwin@mavetju.org> To: rene@xs4all.nl Cc: questions@freebsd.org Subject: Re: /bin/sh script to walk through a filetree? [shell, example, file, directory, tree] Message-ID: <20011217224344.M724@k7.mavetju.org> In-Reply-To: <20011217122028.K21241@xs4all.nl>; from rene@xs4all.nl on Mon, Dec 17, 2001 at 12:20:28PM %2B0100 References: <20011217122028.K21241@xs4all.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 17, 2001 at 12:20:28PM +0100, rene@xs4all.nl wrote: > Hi. I need to do 'something' with all or some files in a directory tree. Can > someone perhaps point me to a skeleton example that shows me how to walk > recursively through a filetree, listing all files/directories in it? The easiest way is: "find .". To distinguish between files and directories: "find . -type f" and "find . -type d". To do something with it, if the argument list isn't becoming too big, is to pipe it through xargs: "find . -type f | xargs rm" to remove all the files. Now a little bit more difficult with recursion: #!/bin/sh ============================= go ( ) { local DIR local entry DIR=$1 echo "now in $DIR" cd "$DIR" for entry in *; do if [ -d "$entry" ]; then go "$DIR/$entry" fi if [ -f "$entry" ]; then echo "File $entry" fi done cd .. echo "back to .." } go . ============================= good luck Edwin -- Edwin Groothuis | Personal website: http://www.MavEtJu.org edwin@mavetju.org | Interested in MUDs? Visit Fatal Dimensions: ------------------+ http://www.FatalDimensions.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011217224344.M724>