find command exec error


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers find command exec error
# 1  
Old 06-13-2006
find command exec error

Hi All,

i am writing a shell script in korn shell
which deletes all the files in a directory
once in every 10DAYS.

the directory has different format files.

the script has something like this;


cd /home/data/pavi
echo "Please Enter the Number of Days to search for"
read DAYS
echo "The entered number of days is $DAYS"
DOACTION="rm -rf"
find DD.* -maxdepth 1 -mtime +$DAYS -exec $DOACTION {} \;
find AA.* -maxdepth 1 -mtime +$DAYS -exec $DOACTION {} \;

the script is working fine DD.* extension.

But for those files with AA.* extension i am getting the following
error message;

pav.ksh[33]: find: Argument list too long.
there are total 22,309 files with AA.* extension.

can anyone please suggest me the best approach here,

thanks
pavi
# 2  
Old 06-13-2006
Check the max length of arguments to exec:
Code:
grep 'ARG_MAX' /usr/include/limits.h

or Try this:
Code:
find AA.* -maxdepth 1 -mtime +$DAYS | xargs $DOACTION

Regards,
Tayyab

Last edited by tayyabq8; 06-13-2006 at 02:43 AM..
# 3  
Old 06-13-2006
Quote:
Originally Posted by pavan_test

find DD.* -maxdepth 1 -mtime +$DAYS -exec $DOACTION {} \;
find AA.* -maxdepth 1 -mtime +$DAYS -exec $DOACTION {} \;
You should change these two lines into:

find . -name "DD.*" -maxdepth 1 -mtime +$DAYS -exec $DOACTION {} \;
find . -name "AA.*" -maxdepth 1 -mtime +$DAYS -exec $DOACTION {} \;

Quote:
Originally Posted by pavan_test
pav.ksh[33]: find: Argument list too long.
there are total 22,309 files with AA.* extension.
This error is produced by the use of "*". It means there are too many files on the directory. That's because of the shell's limits when using wildcards.

Regards.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Linux find command seems to not transmit all the result to the '-exec command'

Hello. From a script, a command for a test is use : find /home/user_install -maxdepth 1 -type f -newer /tmp/000_skel_file_deb ! -newer /tmp/000_skel_file_end -name '.bashrc' -o -name '.profile' -o -name '.gtkrc-2.0' -o -name '.i18n' -o -name '.inputrc' Tha command... (3 Replies)
Discussion started by: jcdole
3 Replies

2. Shell Programming and Scripting

Find and move command with exec

Hi all, I am trying to find files newer than a given file and them mv them to a new location. So I far I have: find . ! -newer <file_name> -exec ls -l {} \; and find . ! -newer <file_name> -exec mv /TEMP_LOCATION {} \; find is not liking this. Anyone know how to modify the last... (2 Replies)
Discussion started by: jonnyd
2 Replies

3. UNIX for Dummies Questions & Answers

What does the '\' in find -exec command

Hi, I have two scripts that remove files. One works fine and is coded find -name "syst*" -mtime +1 -exec rm {} \; The other is almost the same - only thing missing is the '\'. On that script though I keep getting: rm syst1202.file ? etc Does the \ make that difference or is it a... (3 Replies)
Discussion started by: Grueben
3 Replies

4. Shell Programming and Scripting

find command with -exec

Hi all, Please could someone help with the following command requirement. I basically need to find files NEWER than a given file and order the result on time. My attempt so far is as follows: find . -newer <file_name> -exec ls -lrt {} ;\ But I dont seem to get the right result... (12 Replies)
Discussion started by: jonnyd
12 Replies

5. Shell Programming and Scripting

find command to use multiple -exec options

Hello All, Is there a way to make exec do a couple of operations on a single input from find? For example, find . -type d -exec ls -l "{}" ";" I would like to give the result of each "ls -l" in the above to a wc. Is that possible? I want to ls -l | wc -l inside exec. How do I... (1 Reply)
Discussion started by: prasanna1157
1 Replies

6. Shell Programming and Scripting

How to get the exit code of -exec in the find command

Hi I have a little problem with the find command in a script that I'm writing. The script should check if there are some files younger than 100 seconds and then syncronise them with rsync. My find command: find -type f -cmin -100 -exec rsync -a --delete directory1/ directory2/ When I... (8 Replies)
Discussion started by: oku
8 Replies

7. Shell Programming and Scripting

find command with -exec

Hi People, I have a directory full of compressed files (.Z extention) In many of these files there is a string pattern (3800078163033) I want to find all file names which contain this string in their text. Regards, Abhishek (2 Replies)
Discussion started by: max29583
2 Replies

8. Shell Programming and Scripting

find command with exec doesnt work

Hi There, I have a script which finds for log files and removes them if the file has changed in the last day. The script runs fine without errors. The log file is still there. So, I decided to print the find command and run the command outside the script. Getting "Incomplete statement" Can you... (6 Replies)
Discussion started by: funtochat2002
6 Replies

9. UNIX for Advanced & Expert Users

Find command with prune and exec

Hi, I'm using the following command to get a list of files on the system. find /releases -type f -exec ls -l > /home/sebarry/list.txt '{}' \; however, its searching a directory I don't want it to search so I know I have to use prune but I don't seem to be able to get prune and exec to work... (1 Reply)
Discussion started by: Sebarry
1 Replies
Login or Register to Ask a Question

Featured Tech Videos