When cooking something recursive I think there are two essential ingredients:
local variables ( "typeset var" )
variable passing
There are multiple functions active at the same time and their variables should not interfere with parent's variables. To make a distinction between local and global variables I used lower case and upper case. Also there was a while loop in the generate function that should be an if statement.
Code:
#!/bin/bash
#set -x
read -p " What root directory? " ROOTDIR
[ -d $ROOTDIR ] && { /bin/rm -R $ROOTDIR; mkdir $ROOTDIR; } || mkdir $ROOTDIR
read -p " How many directories? " DIRNB
read -p " How many levels? " LEVNB
generate() {
typeset path=$1
typeset level=$2
typeset directory
typeset n
((level++))
for (( n=0; n < ${DIRNB:-1}; n++ )); do
mkdir $path/directory$n
done
if [ $level -lt ${LEVNB:-1} ]; then
for directory in $path/*; do
generate $directory $level
done
fi
}
LEVEL=0
generate $ROOTDIR $LEVEL
find $ROOTDIR
---------- Post updated at 11:10 PM ---------- Previous update was at 10:33 PM ----------
Also, if you move the creation of the topdir at each level to the function, you can make it a bit shorter:
Code:
#!/bin/bash
read -p " What root directory? " ROOTDIR
read -p " How many subdirectories? " SUBDIRS
read -p " How many levels? " LEVELS
if [ -d $ROOTDIR ]; then
echo $ROOTDIR exist
exit 1
fi
generate() {
typeset path=$1
typeset level=$2
typeset n
mkdir $path
if (( level > 0 )); then
for (( n=0; n < SUBDIRS; n++ )); do
generate $path/directory$n $((level-1))
done
fi
}
generate $ROOTDIR $LEVELS
find $ROOTDIR
I almost have the entire script written. however the problem is how would i assign the global variable to terminate the process from the bottom up to ensure the child terminates so the parent can.
ex. I am proccess 1
I am proccess 2
etc
Here is the code
$ cat tree.c
... (3 Replies)
hi i have modified a program to display directory entries recursively in a tree like form
i need an output with the following guidelines:
the prog displays the contents of the directory
the directory contents are sorted before printing so that directories come before regular files
if an entry... (2 Replies)
I'm currently trying to write a script that will do the following:
search a given directory tree for a file with MMDDYYYY in the name.
delete those files only.
I can't figure out how to make the script delete the files with the MMDDYYYY in the filename after finding them.
Should I export... (7 Replies)
Hi all,
The following is a script for displaying directory tree.
D=${1:-`pwd`}
(cd $D; pwd)
find $D -type d -print | sort |
sed -e "s,^$D,,"\
-e "/^$/d"\
-e "s,*/\(*\)$,\:-----\1,"\
-e "s,*/,: ,g" | more
exit 0
I am trying to understand the above script.But... (3 Replies)
Is this possible? Let me know If I need specify further on what I am trying to do- I just want to spare you the boring details of my personal file management.
Thanks in advance-
Brian- (2 Replies)
find . -type d -print 2>/dev/null|awk '!/\.$/ {for (i=1;i<NF;i++){d=length($i);if ( d < 5 && i != 1 )d=5;printf("%"d"s","|")}print "---"$NF}' FS='/'
Can someone explain how this works..??
How can i add directory size to be listed in the above command's output..?? (1 Reply)
Hi Experts,
I have table in mysql like below:
'user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id`
varchar(100) NOT NULL,
`member_name` varchar(100) NOT NULL,
`city` varchar(100) NOT NULL,
`member_id` varchar(100) NOT
NULL,
`password` varchar(100) NOT... (1 Reply)
Hi friends,
Hello again :)
i got stuck in problem. Is there any way to get a special directory from directory tree?
Here is my problm.." Suppose i have one fix directory structure "/abc/xyz/pqr/"(this will be fix).Under this directory structure i have some other directory and... (6 Replies)
Hello Everyone,
I need to find the file / directory with the maximum timestamp in a directory tree having many files / directories.
Could you please help.
Thanks,
H squared (3 Replies)
Discussion started by: H squared
3 Replies
LEARN ABOUT OPENSOLARIS
gnomevfs-mkdir
gnomevfs-mkdir(1) User Commands gnomevfs-mkdir(1)NAME
gnomevfs-mkdir - make a new directory at a VFS location
SYNOPSIS
gnomevfs-mkdir -p URI
DESCRIPTION
gnomevfs-mkdir is obsolete. It has been superseded by gvfs-mkdir. See gvfs-mkdir(1).
gnomevfs-mkdir makes a new directory at a URI location that supports the creation of new directories.
OPTIONS
The following options are supported:
-p Create parents of the directory if needed
OPERANDS
The following operands are supported:
URI Specifies the location of the new directory in standard URI format.
EXAMPLES
Example 1: Making a New Directory in the Home Directory
example% gnomevfs-mkdir file:///home/user/newdir
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables: NLSPATH.
EXIT STATUS
The exit value 0 is returned regardless of success or failure.
FILES
The following files are used by this application:
/usr/bin/gnomevfs-mkdir Executable to make a new directory at a VFS location
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWgnome-vfs |
+-----------------------------+-----------------------------+
|Interface stability |Obsolete Volatile |
+-----------------------------+-----------------------------+
SEE ALSO gnomevfs-cat(1), gnomevfs-copy(1), gnomevfs-info(1), gnomevfs-ls(1), gvfs-mkdir(1), attributes(5), environ(5)NOTES
Written by Stephen Browne, Sun Microsystems Inc., 2004.
SunOS 5.11 14 May 2008 gnomevfs-mkdir(1)