Sponsored Content
Top Forums Shell Programming and Scripting Moving file from one dir to Another with Given Qualifier Post 302380705 by reminder on Wednesday 16th of December 2009 04:26:19 AM
Old 12-16-2009
Does the script I use help?:

You may replace the secureMove function with a simple move statement (secureMove increments a counter in the filename should the same file exist in the destination folder already).

Code:
#!/usr/bin/bash
#Version: v0.2
#Date:    21th of October, 2009
LOG=1
DEBUG=0
WARN=1
LOGDIR="/opt/logs"
DESTDIR="/export/home/li"
debug()
{
    if [ "$DEBUG" = 1 ] ; then
        /usr/bin/logger -p local7.debug "FileMove:$1"
    fi
}
log()
{
    if [ "$LOG" = 1 ] ; then
        /usr/bin/logger -p local7.notice "FileMove:$1"
    fi
}
warn()
{
    if [ "$WARN" = 1 ] ; then
        /usr/bin/logger -p local7.warn "FileMove:$1"
    fi
}


echo

detect_os()
{
    OS=`uname`
    case $OS in
       Linux) debug "Detecting OS... Linux";;
       SunOS) debug "Detecting OS... Solaris";;
       *) log "Detecting OS... Unknown OS! Only Linux and Solaris are supported so far. Exiting..."; exit 0;;
    esac
}

define_procs()
{
    case $OS in
       Linux)
                ECHO=/bin/echo
                CAT=/bin/cat
                EGREP=/bin/egrep
                GREP=/bin/grep
                SED=/bin/sed
                TR=/usr/bin/tr
                AWK=/bin/awk
                FIND=/usr/bin/find
                XARGS=/usr/bin/xargs
                BC=/usr/bin/bc
                WC=/usr/bin/wc
                ;;
       SunOS)
                ECHO=/usr/bin/echo
                CAT=/usr/bin/cat
                EGREP=/usr/bin/egrep
                GREP=/usr/bin/grep
                SED=/usr/bin/sed
                TR=/usr/bin/tr
                CHOWN=/usr/bin/chown
                MV=/usr/bin/mv
                if [ -f /usr/xpg4/bin/awk ]
                then
                    AWK=/usr/xpg4/bin/awk
                else
                    AWK=/usr/bin/awk
                fi
                FIND=/usr/bin/find
                XARGS=/usr/bin/xargs
                BC=/usr/bin/bc
                WC=/usr/bin/wc
                EXPR=/usr/bin/expr
                CP=/usr/bin/cp
                ;;
    esac
}

secureMove(){
    FILE="$1"
    DESTFILE=$FILE
    COUNTER=`$ECHO $FILE | sed -e 's/\.log$//;s/.*-//g'`

    debug "Current counter value is $COUNTER"

    while [ -f "${DESTDIR}/${DESTFILE}" -o -f "${DESTDIR}/retrieved.${DESTFILE}" ]
    do
        debug "File ${DESTDIR}/(retrieved.)${DESTFILE} exists already. Incrementing counter..."
        COUNTER=`$EXPR $COUNTER + 1`;
        DESTFILE=`$ECHO $DESTFILE | $SED -e "s/[^-][0-9]*\.log$/${COUNTER}\.log/"`
        debug "...new filename $DESTFILE"
    done

   $CHOWN li:li "${FILE}"
   $MV "${FILE}" "${DESTDIR}/${DESTFILE}"
    if [ $? = 0 ]; then
        log "$FILE moved SUCCESSfully to ${DESTDIR}/${DESTFILE}";
    else
        warn "FAILED to move file $FILE!!";
    fi
}

processFile(){
    FILE="$1"
    # make sure file exist and readable
    if [ ! -f $FILE ]; then
        warn " $FILE does not exists"
        exit 1
    elif [ ! -r $FILE ]; then
        warn " Unable to read $FILE"
        exit 2
    fi
    secureMove $FILE
}

processDir(){
    DIR=$1
    filecount=`$FIND ${DIR} -name "*ACCOUNTING*\-*\-*.log" -print | $WC -l | $TR -s '[:space:]' -`
    log "moving ${filecount} accounting files from ${DIR} to ${DESTDIR}"
    cd $LOGDIR
    for FILE in `/usr/bin/ls -1 *ACCOUNTING*\-*\-*.log`
    do
        processFile $FILE
    done
}

detect_os
define_procs
processDir $LOGDIR

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

full path of a file situated either in parent's dir. or parent's parent dir. so on...

hi experts(novice people can stay away as it is no child's game), i am developing a script which works like recycle bin of windows. the problem i am facing is that when ever i am trying to delete a file which is situated in parent directory or parent's parent directory i am unable to... (1 Reply)
Discussion started by: yahoo!
1 Replies

2. Shell Programming and Scripting

copying a file from one dir to another dir

hi i have a script compareFiles() { find /tmp/Satya -type f | \ while read filename1 do echo "----------------------------------------$filename1" find /tmp/Satya -type f | \ while read filename2 do if diff $filename1 $filename2 then echo "Both files... (3 Replies)
Discussion started by: Satyak
3 Replies

3. Shell Programming and Scripting

Moving file(s) from dir to dir

Hi, I am fairly new to writing scripts. I am trying to write a script that moves either One or All of the files from one directory to another. I know how to make the actual command to do it, but i don't quite know how to add operators to it, ie -i or -a. I want -i to move one file from... (4 Replies)
Discussion started by: SirJoeh
4 Replies

4. Shell Programming and Scripting

moving dir subdir and files

I have created a directory structure and under the directory subdirectories and files are there.I need to move the entire thing to another path.How can i write a script to do that. currently the path of files is as below : /data1/serial/mcycle/archive : under this path differnt sub dir exist ... (6 Replies)
Discussion started by: dr46014
6 Replies

5. UNIX for Dummies Questions & Answers

Copying dir (and sub dir) file names from ftp server to txt file in diff server

Hey all, i want to copy only the file names from an ftp server (directory and all sub directory) to a text file in another server (non ftp), i.e. i want to recursively move through directories and copy only the names to a text file. any help is appreciated...thank you in advance (1 Reply)
Discussion started by: deking
1 Replies

6. Shell Programming and Scripting

moving files from a dir in one machine to a dir in another machines

Hi, I am a unix newbie.I need to write a shell script to move my oracle READ WRITE datafiles from one serevr to another. I need to move it from /u01/oradata/W1KK/.. to /u01/oradata/W2KK, /u02/oradata/W1KK/.. to /u02/oradata/W2KK. That is, I actaully am moving my datafiles from one database to... (2 Replies)
Discussion started by: mathews
2 Replies

7. UNIX for Dummies Questions & Answers

How to list all files in dir and sub-dir's recursively along with file size?

I am very new to unix as well as shell scripting. I have to write a script for the following requirement. In have to list all the files in directory and its sub directories along with file path and size of the file Please help me in this regard and many thanks in advance. (3 Replies)
Discussion started by: nmakkena
3 Replies

8. Shell Programming and Scripting

Problem with moving a file to another dir.

Hi frnds The following is the code #!/bin/ksh ############################################################## # # # Created by eDB Dev - 27-May-2011 # # ... (1 Reply)
Discussion started by: balesh
1 Replies

9. Shell Programming and Scripting

Create file Dir and Sub Dir same time

Hi Guys , I want create files Dire and Sub Dire. as same time using variable. EX: x1="/hk/Pt/put/NC/R1.txt" x2="/hk/pt/Put/Ot/NC/RN.txt" And i want delete all after done with my script. Thanks (2 Replies)
Discussion started by: pareshkp
2 Replies

10. Shell Programming and Scripting

Text qualifier issue causing data alignment problem

Hello Everyone, I have a csv file with text qualifier as "" and data similar to below: "1","abc","address1","US" "2","def","address1 "characters in double-quote" address2","IND" "3","ghi","address1","UK" In above example, for record 2, we have an issue as in column3 contains double... (2 Replies)
Discussion started by: AnkitSenghani
2 Replies
update-fonts-dir(8)					      System Manager's Manual					       update-fonts-dir(8)

NAME
       update-fonts-dir - compile fonts.dir files

SYNOPSIS
       update-fonts-dir [OPTION] directory ...

DESCRIPTION
       update-fonts-dir creates a fonts.dir file in an X font directory by invoking mkfontdir(1x) with the appropriate arguments.  It is typically
       invoked only from the post-installation and post-removal scripts of a package containing fonts for the X Window System, but may be  invoked
       at  any	time  to  reconstruct  fonts.dir  files.   For	each directory, which is simply the last component of its path (such as '75dpi' or
       'misc'), update-fonts-dir will generate either /usr/lib/X11/fonts/directory/fonts.dir or /usr/share/fonts/X11/directory/fonts.dir from  the
       fonts.scale and font files found within it.

       This  enables  multiple packages to provide names for fonts in the same directory.  No font package actually provides the fonts.dir file in
       the X font directory itself, so there is no danger of overwriting one package's font names with those of another.

       For instance, the two packages  'xfonts-base'  (real)  and  'xfonts-nifty'  (hypothetical)  may	both  install  fonts  into  the  directory
       /usr/lib/X11/fonts/misc,  and  update-fonts-dir	will  ensure that the fonts.dir file in that directory contains information about the font
       files provided by both packages.

       The format of fonts.dir files is described in the mkfontdir(1x) manual page.

       An example of how to use update-fonts-dir in package maintainer scripts is provided in the Debian Policy Manual.

OPTIONS
       -h, --help displays a brief usage message and exits.

       -7, --x11r7-layout switches the font layout to the one introduced in X11R7: fonts in /usr/share/fonts/X11/directory (default is:  fonts	in
       /usr/lib/X11/fonts/directory)

OPERANDS
       update-fonts-dir  takes	one or more X font directory names to operate on as operands.  Only the final path component of the directory name
       should be specified; e.g.,
	      update-fonts-dir 75dpi
       is correct, while 'update-fonts-dir /usr/X11R6/lib/X11/fonts/75dpi' and 'update-fonts-dir /usr/lib/X11/fonts/75dpi' are not.

ENVIRONMENT
       COLUMNS
	      indicates the width of the terminal device in character cells.  This value is used for formatting diagnostic messages.  If not  set,
	      the terminal is queried using stty(1) to determine its width.  If that fails, a value of '80' is assumed.

DIAGNOSTICS
   Errors
       usage error: one or more font directories must be provided
	      update-fonts-dir was invoked without operands.  Supply one or more X font directory names to operate on.

       usage error: unrecognized option
	      update-fonts-dir was invoked with an unrecognized option argument.  Use only the options documented in "OPTIONS", above.

       fatal error: path to X font directory must be used
	      A directory name was supplied that was not an X font directory name.  Supply X font directory names only.

   Warnings
       warning: absolute path directory was provided
	      Usage of absolute paths is deprecated.  Use only the final component of the X font directory name for directory.

       warning: directory does not exist or is not a directory
	      The supplied directory was invalid.  update-fonts-dir skipped it.

EXIT STATUS
       0      update-fonts-dir ran successfully.

       1      update-fonts-dir experienced a fatal error; see the section on diagnostic messages above.

       2      update-fonts-dir was invoked with invalid arguments.

BUGS
       See  the  Debian  Bug  Tracking	System <http://bugs.debian.org/xfonts-utils>.  If you wish to report a bug in update-fonts-dir, please see
       /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.

AUTHOR
       update-fonts-dir was written by Branden Robinson.

SEE ALSO
       mkfontdir(1x)

Debian Project							    2004-11-11						       update-fonts-dir(8)
All times are GMT -4. The time now is 12:06 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy