Sponsored Content
Top Forums Shell Programming and Scripting find/if statement not working Post 92765 by geomonap on Wednesday 14th of December 2005 04:07:56 PM
Old 12-14-2005
Data Ksh find/if statement not working

Hi guys:
I am trying to delete multiple files in a folder with different names. Below is the script that I was trying, but it doesn't work

**************************
#!/bin/ksh
DATE=`date '+20%y%m%d'`
DEL_DIR=<dir where files have to be deleted>
let DATE2=$(($DATE - 2))
let DATE1=$(($DATE -1))
DELFILE_1=abc1.txt.$DATE1*
DELFILE_2=abc1.txt.$DATE2*
DELTAR=cdr.$DATE2.tar

find $DEL_DIR -name $DELFILE_2 -exec rm -f '{}' \;
find $DEL_DIR -name $DELTAR -exec rm -f '{}' \;

**************************
The files I am looking to delete are:
abc.<todays date minus 2>.tar
ex: abc.20051212.tar

abc1.txt.<date-2><some numbers>
ex: abc1.txt.20051212010101

The error message I get is when I run the find command(s) :
find: paths must precede expression
Usage: find [path...] [expression]

The find statement works when on the command line but not in the script. I also used the following command line which gave the same error message when run from the script but not on the command line

find $DEL_DIR -name $DELFILE_2 |xargs rm -f

I also tried using the If statement as shown below but it doesn't delete the files

if [[ -a $DELFILE_2 ]]; then
rm -f $DELFILE_2
fi

fi [[ - a $DELTAR ]]; then
rm -f $DELTAR
fi

The server is running redhat linux 4
Your help is appreciated.

Thanks,

-Gm

Last edited by geomonap; 12-14-2005 at 05:49 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

If statement not working

I understand this question probably poses some child like stupidity, but I can't get this if statement to work for love or money. #!/bin/ksh echo "Input either 1 or 2" read Num if ; then echo "Message 1" if ; then echo "Message 2" else echo "false" fi $ ksh decisions Input either 1... (6 Replies)
Discussion started by: Hazmeister
6 Replies

2. UNIX for Dummies Questions & Answers

until statement not working

im trying to write an until statement which dont go onto the next stage until the user inputs a certain phrase. It is then stored in an array. Ive come up with this code so far but its not working and i dont know why. read in1 until do echo "Incorrect, try again" ... (2 Replies)
Discussion started by: strasner
2 Replies

3. Shell Programming and Scripting

read statement not working in a function

Pls this is emergency.I have written a script which is taking input from another script. and the contents of my second script are acting as functions to my main script.Now the problem is that in one of the functions i want the script ececution to stop and start when user enters any character r... (2 Replies)
Discussion started by: sumitdua
2 Replies

4. Shell Programming and Scripting

Read statement not working in a script

I have a script consisting of certain functions whose input is a file at same location. In that file i have written the name of anothe file at same location. The third file contains a word which act as a function in the first script.Let me give an example i have a scrip file say 1.sh in which i am... (7 Replies)
Discussion started by: sumitdua
7 Replies

5. UNIX for Dummies Questions & Answers

if statement not working as desired

Hello all, I am trying to write a post-commit hook script using bash script. What I am trying to do here is: Developers check in their files to a branch. I check the repository and based on the commit I email QA people. QA verifies and moves the files to a prod branch and email is sent... (1 Reply)
Discussion started by: kminkeller
1 Replies

6. Shell Programming and Scripting

If statement is not working.

Hi. With the help of this group I have created a shell script to find the factorial of a number. OK. Then I got wild.;) I tried to put in a check to make sure the entry is a number. read num If )) then echo "This is not a valid number. Try again." fi while (( $var <= $num)) more... (5 Replies)
Discussion started by: Ccccc
5 Replies

7. Shell Programming and Scripting

Cshell if statement not working

Hi .I am trying to check the first arguments =-s and the third =-d,but it doesnt work ,any idea why It gives me if: Missing file name Thanks #case -s and files if( $1 == "-s" && $3 != "-d" ) then echo "case s" endif (1 Reply)
Discussion started by: lio123
1 Replies

8. Shell Programming and Scripting

If statement is not working in KSH

#! /bin/ksh rm -f ./xyz file --- this line is working // Below any if stmt is not working. if then echo " blah blah " fi or I replaced above if with if then echo "dir exists" fi This is also not working. I am new to KSH. So can someone help why if stmt is not... (31 Replies)
Discussion started by: saggy9583
31 Replies

9. Shell Programming and Scripting

Case statement not working as expected

case "$freq" in " Hz") low=250; high=550;; "8 Hz") low=250; high=1000;; " Hz") low=400; high=1000;; "63 Hz") low=550; high=1000;; " Hz") low=400; high=550;; ... (2 Replies)
Discussion started by: Michael Stora
2 Replies

10. Shell Programming and Scripting

Read statement not working

hello guys, i am having the below piece of code error () { echo"Press y /n" read ans case $ans in y) main;; n) exit esac } In the abve code, read statement is not working i.e not waiting for user to enter input. ,i tested exit status its 1. could anyone help me to do this ... (11 Replies)
Discussion started by: mohanalakshmi
11 Replies
TAR(1)							      General Commands Manual							    TAR(1)

NAME
tar - The GNU version of the tar archiving utility SYNOPSIS
tar [ - ] A --catenate --concatenate | c --create | d --diff --compare | r --append | t --list | u --update | x -extract --get [ --atime- preserve ] [ -b, --block-size N ] [ -B, --read-full-blocks ] [ -C, --directory DIR ] [ --checkpoint ] [ -f, --file [HOSTNAME:]F ] [ --force-local ] [ -F, --info-script F --new-volume-script F ] [ -G, --incremental ] [ -g, --listed-incremental F ] [ -h, --dereference ] [ -i, --ignore-zeros ] [ -j, -I, --bzip ] [ --ignore-failed-read ] [ -k, --keep-old-files ] [ -K, --starting-file F ] [ -l, --one-file-sys- tem ] [ -L, --tape-length N ] [ -m, --modification-time ] [ -M, --multi-volume ] [ -N, --after-date DATE, --newer DATE ] [ -o, --old-ar- chive, --portability ] [ -O, --to-stdout ] [ -p, --same-permissions, --preserve-permissions ] [ -P, --absolute-paths ] [ --preserve ] [ -R, --record-number ] [ --remove-files ] [ -s, --same-order, --preserve-order ] [ --same-owner ] [ -S, --sparse ] [ -T, --files-from=F ] [ --null ] [ --totals ] [ -v, --verbose ] [ -V, --label NAME ] [ --version ] [ -w, --interactive, --confirmation ] [ -W, --verify ] [ --exclude FILE ] [ -X, --exclude-from FILE ] [ -Z, --compress, --uncompress ] [ -z, --gzip, --ungzip ] [ --use-compress-program PROG ] [ --block-compress ] [ -[0-7][lmh] ] filename1 [ filename2, ... filenameN ] directory1 [ directory2, ...directoryN ] DESCRIPTION
This manual page documents the GNU version of tar , an archiving program designed to store and extract files from an archive file known as a tarfile. A tarfile may be made on a tape drive, however, it is also common to write a tarfile to a normal file. The first argument to tar must be one of the options: Acdrtux, followed by any optional functions. The final arguments to tar are the names of the files or directories which should be archived. The use of a directory name always implies that the subdirectories below should be included in the archive. FUNCTION LETTERS
One of the following options must be used: -A, --catenate, --concatenate append tar files to an archive -c, --create create a new archive -d, --diff, --compare find differences between archive and file system --delete delete from the archive (not for use on mag tapes!) -r, --append append files to the end of an archive -t, --list list the contents of an archive -u, --update only append files that are newer than copy in archive -x, --extract, --get extract files from an archive OTHER OPTIONS
--atime-preserve don't change access times on dumped files -b, --block-size N block size of Nx512 bytes (default N=20) -B, --read-full-blocks reblock as we read (for reading 4.2BSD pipes) -C, --directory DIR change to directory DIR --checkpoint print directory names while reading the archive -f, --file [HOSTNAME:]F use archive file or device F (default /dev/rmt0) --force-local archive file is local even if has a colon -F, --info-script F --new-volume-script F run script at end of each tape (implies -M) -G, --incremental create/list/extract old GNU-format incremental backup -g, --listed-incremental F create/list/extract new GNU-format incremental backup -h, --dereference don't dump symlinks; dump the files they point to -i, --ignore-zeros ignore blocks of zeros in archive (normally mean EOF) -j, -I, --bzip filter the archive through bzip2. Note: -I is deprecated and may get a different meaning in the near future. --ignore-failed-read don't exit with non-zero status on unreadable files -k, --keep-old-files keep existing files; don't overwrite them from archive -K, --starting-file F begin at file F in the archive -l, --one-file-system stay in local file system when creating an archive -L, --tape-length N change tapes after writing N*1024 bytes -m, --modification-time don't extract file modified time -M, --multi-volume create/list/extract multi-volume archive -N, --after-date DATE, --newer DATE only store files newer than DATE -o, --old-archive, --portability write a V7 format archive, rather than ANSI format -O, --to-stdout extract files to standard output -p, --same-permissions, --preserve-permissions extract all protection information -P, --absolute-paths don't strip leading `/'s from file names --preserve like -p -s -R, --record-number show record number within archive with each message --remove-files remove files after adding them to the archive -s, --same-order, --preserve-order list of names to extract is sorted to match archive --same-owner create extracted files with the same ownership -S, --sparse handle sparse files efficiently -T, --files-from=F get names to extract or create from file F --null -T reads null-terminated names, disable -C --totals print total bytes written with --create -v, --verbose verbosely list files processed -V, --label NAME create archive with volume name NAME --version print tar program version number -w, --interactive, --confirmation ask for confirmation for every action -W, --verify attempt to verify the archive after writing it --exclude FILE exclude file FILE -X, --exclude-from FILE exclude files listed in FILE -Z, --compress, --uncompress filter the archive through compress -z, --gzip, --ungzip filter the archive through gzip --use-compress-program PROG filter the archive through PROG (which must accept -d) 30 October 2000 TAR(1)
All times are GMT -4. The time now is 01:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy