Visit Our UNIX and Linux User Community


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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to get the exit code of -exec in the find command
# 1  
Old 09-29-2009
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:

Code:
find -type f -cmin -100 -exec rsync -a --delete directory1/ directory2/

When I check the exit code with $? I always get 0 even if I can be sure the rsync should fail. How can I get the exit code of the rsync and the find?

I allready contacted the man page but it didn't really helped me much.

Quote:
Find man page:
Execute command; true if 0 status is returned.

Last edited by Neo; 09-29-2009 at 05:10 AM.. Reason: code tags for commands, please.
# 2  
Old 09-29-2009
-cmin -100 is mean less than 100 minutes, not 100 seconds.

find with -exec will be used as below format, but I don't see the part of {} \; in your script.

Code:
find . -exec ls -l {} \;

# 3  
Old 09-29-2009
Quote:
Originally Posted by rdcwayx
-cmin -100 is mean less than 100 minutes, not 100 seconds.

find with -exec will be used as below format, but I don't see the part of {} \; in your script.

Code:
find . -exec ls -l {} \;

Yes 100 mins is correct.

Does this part make any difference? The command itself works that I know. But when I try to make it fail, I don't get another exit code.

---------- Post updated at 01:53 PM ---------- Previous update was at 10:11 AM ----------

What I have tried so far:

It came up in my mind, that this could work like a pipe. I found an information, that the exitcode of the first command in a pipe could get read (in a bash) by {$PIPESTATUS[0]}, the second command of the pipe by {$PIPESTATUS} and so on. But unfortunately it doesn't work in that case... Smilie
# 4  
Old 09-29-2009
I think it might be easier to run find and then store the results in a temporary file, then run a script to read the file and execute your rsync command.

You can easily get the exit code of rsync that way.
# 5  
Old 09-29-2009
Instead of using -exec, try using &&.

Code:
$ find . -cmin -100 -type f && rsync -a --delete directory1/ directory2/

# 6  
Old 09-29-2009
You could try and work find's internal boolean logic, eg.
Code:
find -type f -cmin -100 \( -exec rsync -a --delete directory1/ directory2/ \; -o -exec echo {} failed \; \)

# 7  
Old 09-29-2009
Thank you for your posts.

@Neo: that would be slower (i know not much but it need to be fast and slim)
@agn: thx will try that right now
@pludi: didn't know that this option exists, I'll try that too

Previous Thread | Next Thread
Test Your Knowledge in Computers #386
Difficulty: Medium
The Linux telnet command provides a user interface to a remote system using the SSH protocol.
True or False?

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

[Solved] weird in find -exec command

i feel weird with this 2 command find /tmp/*test* -user `whoami` -mtime +1 -type f -exec rm -f {}\; find /tmp/*test* -user `whoami` -mtime +1 -type f -exec ls -lrt {}\; the first one return correct which only delete those filename that consist *test* where second command it listed all the... (12 Replies)
Discussion started by: lsy
12 Replies

4. 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

5. 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

6. 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

7. 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

8. UNIX for Dummies Questions & Answers

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... (2 Replies)
Discussion started by: pavan_test
2 Replies

9. UNIX for Dummies Questions & Answers

Where can I find a list of exit codes? (Exit code 64)

I'm receiving an exit code 64 in our batch scheduler (BMC product control-m) executing a PERL script on UX-HP. Can you tell me where I can find a list of exit codes and their meaning. I'm assuming the exit code is from the Unix operating system not PERL. (3 Replies)
Discussion started by: jkuchar747
3 Replies

Featured Tech Videos