aboutsummaryrefslogtreecommitdiffstats
path: root/examples/functions/recurse
diff options
context:
space:
mode:
Diffstat (limited to 'examples/functions/recurse')
-rw-r--r--examples/functions/recurse63
1 files changed, 0 insertions, 63 deletions
diff --git a/examples/functions/recurse b/examples/functions/recurse
deleted file mode 100644
index f69cd50..0000000
--- a/examples/functions/recurse
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-#From: kaz@ashi.footprints.net (Kaz Kylheku)
-#Newsgroups: comp.os.linux.misc
-#Subject: Re: bash question: subdirectories
-#Message-ID: <slrn8a0gu9.v5n.kaz@ashi.FootPrints.net>
-#Date: Tue, 08 Feb 2000 16:24:35 GMT
-
-#Actually it can be made to. That is to say, it is possible to code a recursive
-#descender function in the bash language. Here is an example.
-#
-#What is nice about this is that you can embed the function into your shell
-#script. The function changes the current working directory as it descends.
-#So it can handle arbitrarily deep paths. Whereas paths generated by the
-#find command can cause a problem when they get too long; the kernel has a
-#hard limit on the length of the string passed to the open() and other
-#system calls.
-
-#There are races; what if the directory tree is blown away during the traversal?
-#The function won't be able to crawl back up using the .. link and will just
-#bail.
-
-# Recursive Directory Traverser
-# Author: Kaz Kylheku
-# Date: Feb 27, 1999
-# Copyright 1999
-
-# Function parameter usage:
-# $1 directory to search
-# $2 pattern to search for
-# $3 command to execute
-# $4 secret argument for passing down path
-
-function recurse
-{
- local file
- local path
-
- if [ "$4" = "" ] ; then
- path="${1%/}/"
- else
- path="$4$1/"
- fi
-
- if cd "$1" ; then
- for file in $2; do
- if [ -f "$file" ] || [ -d "$file" ]; then
- eval "$3"
- fi
- done
- for file in .* * ; do
- if [ "$file" = "." ] || [ "$file" = ".." ] ; then
- continue
- fi
- if [ -d "$file" ] && [ ! -L "$file" ]; then
- recurse "$file" "$2" "$3" "$path"
- fi
- done
- cd ..
- fi
-}
-
-recurse "$1" "$2" 'echo "$path$file"'