Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Find: missing argument to `-mtime' Post 303042769 by wtolentino on Monday 6th of January 2020 10:59:36 AM
Old 01-06-2020
originally it was written on AIX and is working fine then had to moved the to same script to Linux. basically the goal of the script is to find a file that is days old depending on the parameter.

here is the output using this command sh -xv rmAgingFile.sh file*.log 2
Code:
p1=$1
+ p1=file_1.log
pday=$2
+ pday=file_2.log

vdir=`pwd`
pwd
++ pwd
+ vdir=/sbin/scripts
vhomedir=`pwd`
pwd
++ pwd
+ vhomedir=/sbin/scripts
vctr=0
+ vctr=0

# check for null parameter
if [ $# -lt 1 ]; then
  echo current directory $vdir
  echo no parameter entered
  echo
else
  #check for directory entry only
  if [ -d $p1 ]; then
    vdir=$p1
    echo current directory $vdir
    cd $vdir
    echo no file parameter entered
    echo
  #check for directory entry and file
  elif [ -f $p1 ]; then
    vdir=`dirname $p1`
    echo current directory $vdir
    cd $vdir

    for f in $1
    do
      vfile=`basename $f`
      #for i in `find $vdir -name "$vfile" -mtime +$pday`
      #ommit the subdirectories in the searcch
      for i in `find . ! -name . -prune -type f -name "$vfile" -daystart -mtime +$pday`
      do
        let vctr=$vctr+1
        vfile=`basename $i`
        echo deleting aging files $vfile
        rm $vfile
      done
    done

    if [ $vctr -eq 0 ]; then
      echo "no aging files found that are $pday days old"
    fi
  else
    echo $p1 not found
  fi
fi
+ '[' 3 -lt 1 ']'
+ '[' -d file_1.log ']'
+ '[' -f file_1.log ']'
dirname $p1
++ dirname file_1.log
+ vdir=.
+ echo current directory .
current directory .
+ cd .
+ for f in '$1'
basename $f
++ basename file_1.log
+ vfile=file_1.log
find . ! -name . -prune -type f -name "$vfile" -daystart -mtime +$pday
++ find . '!' -name . -prune -type f -name file_1.log -daystart -mtime +file_2.log
find: missing argument to `-mtime'
+ '[' 0 -eq 0 ']'
+ echo 'no aging files found that are file_2.log days old'
no aging files found that are file_2.log days old

#return the cursor to the home directory
cd $vhomedir
+ cd /sbin/scripts

# put a white space
echo
+ echo


thank you.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

find -mtime off by one day?

If I use the find command to find files older than n days I have to enter find . -mtime +(n-1). I tried this on a Solaris 9 system and also Linux. Is this something that all Unix veterans know about (I'm new to Unix)? If so, maybe my man pages need to be updated (how to do this?). :confused: (4 Replies)
Discussion started by: ceanntrean
4 Replies

2. UNIX for Dummies Questions & Answers

find . -mtime

...what am i doing wrong?? I need to find all files older than 30 days and delete but I can't get it to pull details for ANY + times. The file below has a time stamp which is older than 1 day, however if I try and select it using any of the -time flags it just doesn't see it. (the same thing... (1 Reply)
Discussion started by: topcat8
1 Replies

3. UNIX for Dummies Questions & Answers

(find) mtime vs. (unix) mtime

Hi I've made some test with perl script to learn more about mtime... So, my question is : Why the mtime from findfind /usr/local/sbin -ctime -1 -mtime -1 \( -name "*.log" -o -name "*.gz" \) -print are not the same as mtime from unix/linux in ls -ltr or in stat() function in perl : stat -... (2 Replies)
Discussion started by: hiddenshadow
2 Replies

4. UNIX for Dummies Questions & Answers

find mtime syntax

Hi guys, I am looking for a way of moving all files out of a directory with a time stamp greater then the one I specify. Can anyone suggest a way of doing so? For example, move all files out of dir1 which were created after 17:00 into dir2. Thanks :) (1 Reply)
Discussion started by: JayC89
1 Replies

5. Shell Programming and Scripting

find -mtime +7

Dear all, find $ADMIN_DIR/$SID/arch/ -name '*.gz' -mtime +7 -exec rm {} \; is it retaining 7 days OR 8 days .gz files ? Thanks Prakash (10 Replies)
Discussion started by: prakashoracledb
10 Replies

6. Shell Programming and Scripting

Help on find -mtime -exec

Hello people. Part of my script: echo "Compressing files older than 2 months in ${TEMP_DIR} directory ..." find ${DATA_DIR}/ -name '*.dat' -mtime 61 -exec compress {} \; #BELOW COMMAND DOES NOT WORK :-( <<<<<<----------- find ${DATA_DIR}/ -name '*.o.lines.*' -mtime 61 -exec compress {}... (2 Replies)
Discussion started by: drbiloukos
2 Replies

7. UNIX for Dummies Questions & Answers

Find using mtime

Hi, so I was using mtime and its not behaving the way I would think its supposed too. I have two pdf files. One modified today and another 6 months ago. I upload them to the solaris server. Then I run the below find statements. This finds my 2 files find *.pdf -type f -name '*.pdf' this finds... (2 Replies)
Discussion started by: vsekvsek
2 Replies

8. Shell Programming and Scripting

find: missing argument to `-exec' while redirecting using find in perl

Hi Friends, Please help me to sort out this problem, I am running this in centos o/s and whenever I run this script I am getting "find: missing argument to `-exec' " but when I run the same code in the command line I didn't find any problem. I am using perl script to run this ... (2 Replies)
Discussion started by: ramkumarselvam
2 Replies

9. Shell Programming and Scripting

Find by name and mtime

Hi, I'm trying to find all files that have a .ksh and .p extension and that are 7 days old by using the below find command but it doesn't seem to as expected. It gives me random results.. Can someone point out what may be wrong? find . -name "*.ksh" -o -name "*.p" -mtime -7 (2 Replies)
Discussion started by: Jazmania
2 Replies

10. UNIX for Beginners Questions & Answers

Missing argument for option: n Error

I am trying to execute the cli.sh script in another shell script passing arguments and getting the below error. Myscript.sh #!/bin/sh /home/runAJobCli/cli.sh runAJobCli -n $Taskname -t $Tasktype I am passing the below 2 arguments and it giving error ./Myscript.sh T_SAMPLE_TEST MTT... (11 Replies)
Discussion started by: Info_Geek
11 Replies
Wanted(3pm)						User Contributed Perl Documentation					       Wanted(3pm)

NAME
File::Find::Wanted - More obvious wrapper around File::Find VERSION
Version 1.00 SYNOPSIS
File::Find is a great module, except that it doesn't actually find anything. Its "find()" function walks a directory tree and calls a callback function. Unfortunately, the callback function is deceptively called "wanted", which implies that it should return a boolean saying whether you want the file. That's not how it works. Most of the time you call "find()", you just want to build a list of files. There are other modules that do this for you, most notably Richard Clamp's great File::Find::Rule, but in many cases, it's overkill, and you need to learn a new syntax. With the "find_wanted" function, you supply a callback sub and a list of starting directories, but the sub actually should return a boolean saying whether you want the file in your list or not. To get a list of all files ending in .jpg: my @files = find_wanted( sub { -f && /.jpg$/ }, $dir ); For a list of all directories that are not CVS or .svn: my @files = find_wanted( sub { -d && !/^(CVS|.svn)$/ }, $dir ) ); It's easy, direct, and simple. WHY DO THIS
? The cynical may say "that's just the same as doing this": my @files; find( sub { push @files, $File::Find::name if -f && /.jpg$/ }, $dir ); Sure it is, but File::Find::Wanted makes it more obvious, and saves a line of code. That's worth it to me. I'd like it if find_wanted() made its way into the File::Find distro, but for now, this will do. FUNCTIONS
find_wanted( &wanted, @directories ) Descends through @directories, calling the wanted function as it finds each file. The function returns a list of all the files and directories for which the wanted function returned a true value. This is just a wrapper around "File::Find::find()". See File::Find for details on how to modify its behavior. COPYRIGHT &; LICENSE Copyright 2005-2012 Andy Lester. This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License v2.0. perl v5.14.2 2012-06-08 Wanted(3pm)
All times are GMT -4. The time now is 04:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy