Sponsored Content
Full Discussion: script
Operating Systems Linux script Post 302460613 by felipe.vinturin on Thursday 7th of October 2010 06:39:49 AM
Old 10-07-2010
Hi,

As this thread is from a different subject, I think is better to open a new one. You can post a link to the new thread and propose the solution below:
Code:
cat DupFileStruct.sh

filenamePattern="*"
fromDir="<FromDirectory>"

baseToDir="<ToDirectory>"
baseToDirUserGroupOwn="<user>:<group>"

dataSep=","

if [ ! -d "${baseToDir}" ]
then
	echo "BaseToDir does not exist: [${baseToDir}]. Creating it..."
	mkdir -p "${baseToDir}"
	[ ${?} -ne 0 ] && echo "Failed to create BaseToDir directory: [${baseToDir}]. Exiting 1." && exit 1
	
	chown ${baseToDirUserGroupOwn} "${baseToDir}"
	[ ${?} -ne 0 ] && echo "Failed to set owner/group to BaseToDir directory: [${baseToDirUserGroupOwn}]. Exiting 1." && exit 1
fi

find ${fromDir} -type d -name "${filenamePattern}" -printf "%u${dataSep}%g${dataSep}%p\n" | \
while read ugf
do
	user=`echo "${ugf}" | awk -F"${dataSep}" '{print $1}'`
	group=`echo "${ugf}" | awk -F"${dataSep}" '{print $2}'`
	pathAndDir=`echo "${ugf}" | awk -F"${dataSep}" '{print $3}'`
	
	toDirNPathDir="${baseToDir}/${pathAndDir}"
	if [ -d "${toDirNPathDir}" ]
	then
		echo "Directory already exist: [${toDirNPathDir}]. Continuing..."
		continue
	fi
		
	echo "Creating directory: [${toDirNPathDir}]..."
	mkdir -p "${toDirNPathDir}"
	[ ${?} -ne 0 ] && echo "Failed to create directory: [${toDirNPathDir}]. Exiting 1." && exit 1
	
	echo "Setting owner/group to: [${user}][${group}]..."
	chown ${user}:${group} "${toDirNPathDir}"
	[ ${?} -ne 0 ] && echo "Failed to set owner/group directory: [${user}:${group}]. Exiting 1." && exit 1
done

Just one comment about this code, be careful when you setup the "fromDir" not to be something under your current path, something like: "./", otherwise if you execute the script twice, you will duplicate your base to directory to.

Regards!
 

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies

2. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

5. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies
echo(1B)					     SunOS/BSD Compatibility Package Commands						  echo(1B)

NAME
echo - echo arguments to standard output SYNOPSIS
/usr/ucb/echo [-n] [argument] DESCRIPTION
echo writes its arguments, separated by BLANKs and terminated by a NEWLINE, to the standard output. echo is useful for producing diagnostics in command files and for sending known data into a pipe, and for displaying the contents of envi- ronment variables. For example, you can use echo to determine how many subdirectories below the root directory (/) is your current directory, as follows: o echo your current-working-directory's full pathname o pipe the output through tr to translate the path's embedded slash-characters into space-characters o pipe that output through wc -w for a count of the names in your path. example% /usr/bin/echo "echo $PWD | tr '/' ' ' | wc -w" See tr(1) and wc(1) for their functionality. The shells csh(1), ksh(1), and sh(1), each have an echo built-in command, which, by default, will have precedence, and will be invoked if the user calls echo without a full pathname. /usr/ucb/echo and csh's echo() have an -n option, but do not understand back-slashed escape characters. sh's echo(), ksh's echo(), and /usr/bin/echo, on the other hand, understand the black-slashed escape characters, and ksh's echo() also understands a as the audible bell character; however, these commands do not have an -n option. OPTIONS
-n Do not add the NEWLINE to the output. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWscpu | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), echo(1), ksh(1), sh(1), tr(1), wc(1), attributes(5) NOTES
The -n option is a transition aid for BSD applications, and may not be supported in future releases. SunOS 5.10 3 Aug 1994 echo(1B)
All times are GMT -4. The time now is 01:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy