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
SHTOOL-ECHO.TMP(1)					      GNU Portable Shell Tool						SHTOOL-ECHO.TMP(1)

NAME
shtool-echo - GNU shtool echo(1) extensional command SYNOPSIS
shtool echo [-n|--newline] [-e|--expand] string DESCRIPTION
shtool echo is an echo(1) style command which prints string to stdout and optionally provides special expansion constructs (terminal bold mode, environment details, date, etc) and newline control. The trick of this command is that it provides a portable -n option and hides the gory details needed to find out the environment details under option -e. OPTIONS
The following command line options are available. -n, --newline By default, output is written to stdout followed by a "newline" (ASCII character 0x0a). If option -n is used, this newline character is omitted. -e, --expand If option -e is used, string can contain special "%x" constructs which are expanded before the output is written. Currently the following constructs are recognized: %B switch terminal mode to bold display mode. %b switch terminal mode back to normal display mode. %u the current user name. %U the current user id (numerical). %g the current group name. %G the current group id (numerical). %h the current hostname (without any domain extension). %d the current domain name. %D the current day of the month. %M the current month (numerical). %m the current month name. %Y the current year. EXAMPLE
# shell script shtool echo -n -e "Enter your name [%B%u%b]: "; read name shtool echo -e "Your Email address might be %u@%h%d" shtool echo -e "The current date is %D-%m-%Y" HISTORY
The GNU shtool echo command was originally written by Ralf S. Engelschall <rse@engelschall.com> in 1998 for Website META Language (WML) under the name buildinfo. It was later taken over into GNU shtool. SEE ALSO
shtool(1), echo(1). 18-Jul-2008 shtool 2.0.8 SHTOOL-ECHO.TMP(1)
All times are GMT -4. The time now is 03:16 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy