Issue in Find and mv command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Issue in Find and mv command
# 1  
Old 09-20-2013
Issue in Find and mv command

Hi

I am using the below code to find mv the files.
Files are moving to the Target location as expected but find is displaying some errors like below.
Code:
find ./ -name "Archive*" -mtime +300 -exec mv {} /mnt/X/ARC/ \;
find: `./Archive_09-30-12': No such file or directory
find: `./Archive_10-07-12': No such file or directory
find: `./Archive_11-11-12': No such file or directory
find: `./Archive_10-28-12': No such file or directory
find: `./Archive_11-18-12': No such file or directory
find: `./Archive_10-01-12': No such file or directory
find: `./Archive_10-21-12': No such file or directory
find: `./Archive_10-14-12': No such file or directory
find: `./Archive_11-04-12': No such file or directory

Any help is appreciated

Thanks
# 2  
Old 09-20-2013
Try without '/'

Code:
find . -name "Archive*" -mtime +300 -exec mv {} /mnt/X/ARC/ \;

# 3  
Old 09-20-2013
I think it has something to do with themvcommand and timing.
Check the destination folder, all these files might have got moved to that folder.

--ahamed
# 4  
Old 09-20-2013
Thanks mathbalaji and Ahamed

@Mathbalaji - same error

@Ahamed - i created a new location in /tmp - same error.
I am not getting it if i use mv -f or cp, any idea why mv is throwing such error even though its moving the file to the destination

Code:
 find . -name "Archive_*" -mtime +180 -exec mv {} /tmp/test \;
find: `./Archive_03-17-13': No such file or directory
find: `./Archive_03-10-13': No such file or directory

# 5  
Old 09-20-2013
mv is not throwing the error. May be someone else can explain it - it has something to do with the stat in find command.

Not sure what difference it will make but try this
Code:
find . -name "Archive_*" -mtime +180 | xargs -I% mv % /tmp/test

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 6  
Old 09-20-2013
Thank you .. it worked..

Any idea why does it happened with exec ?
# 7  
Old 09-20-2013
Quote:
Originally Posted by rakeshkumar
Code:
 find . -name "Archive_*" -mtime +180 -exec mv {} /tmp/test \;
find: `./Archive_03-17-13': No such file or directory
find: `./Archive_03-10-13': No such file or directory

Quote:
Originally Posted by ahamed101
mv is not throwing the error. May be someone else can explain it - it has something to do with the stat in find command.

Not sure what difference it will make but try this
Code:
find . -name "Archive_*" -mtime +180 | xargs -I% mv % /tmp/test

Quote:
Originally Posted by rakeshkumar
Any idea why does it happened with exec ?
find's use of stat is not a problem; stat is called before any -exec can mv a pathname, since mtime must be inspected prior to making the decision to mv.

The issue is that these "Archive_*" files are directories. By default, find visits the directory itself first and then its contents. The error messages are the result of find trying to read the contents of a directory just after -exec mv ... \; has moved it.

The reason that piping into xargs works is buffering delaying xargs' execution of mv long enough for find to descend into the directory. I would not depend on that behavior.

A more robust solution is to use -prune to instruct find not to descend into directories that have been moved. Or, you can use -depth. Or, lastly, you can just ignore the harmless messages.

-prune is probably what you want, since it doesn't modify the traversal order that is currently giving you the desired result. Using -depth traverses the file hierarchy in a different order and could yield unexpected results if there are nested matching filenames.
Code:
 find . -name 'Archive_*' -mtime +180 -prune -exec mv {} /tmp/test \;

Regards,
Alister

Last edited by alister; 09-20-2013 at 12:39 PM..
This User Gave Thanks to alister For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find command issue

Hi Guys, I have a file called error.logs. am just trying to display the content in the file which was modified last 1 day. I tried below command but it doesnt give the proper output. find /u/text/vinoth/bin "error.logs" -mtime -1 -exec cat {} \; >> mail.txt Any help is much... (21 Replies)
Discussion started by: Vinoth Kumar G
21 Replies

2. Shell Programming and Scripting

Find command issue

Guys, Here is my requirement.. Sample.cfg file="*log.gz *txt.gz" sample.sh #!/bin/sh . $HOME/Sample.cfg find . -name "$file" -mtime +20 -exec ls -la {} \; Its not finding the given *log.gz and txt.gz files. Could anyone please help me? (8 Replies)
Discussion started by: AraR87
8 Replies

3. Shell Programming and Scripting

Performance issue while using find command

Hi, I have created a shell script for Server Log Automation Process. I have used find xargs grep command to search the string. for Example, find -name | xargs grep "816995225" > test.txt . Here my problem is, We have lot of records and we want to grep the string... (4 Replies)
Discussion started by: nanthagopal
4 Replies

4. Linux

find command issue

Hi, I am not root user. I am trying to find the file which has contains pattern "fvsfile" in root directory. If i run the find cmd then i got permission denied and all the files are listed include pattern files. i cant get file name yet find . print | xargs grep -i "fvsfile" I want... (2 Replies)
Discussion started by: Mani_apr08
2 Replies

5. Shell Programming and Scripting

Issue with Find Command

Hi All, I'm a bit new to Linux environment, moderately okay when it comes to Unix AIX. I'm facing an issue while trying to run a simple find command: $ for file in `find . -name *.*` > do > ls $file > done This is throwing the following error: Strangely, a few minutes... (4 Replies)
Discussion started by: adi_2_chaos
4 Replies

6. UNIX for Dummies Questions & Answers

Find command issue

I am currently using below command to get the 1st three characters of a file(PDM). Issue is, when i use find command in root dir, it finds all the files in sub dir also. How to limit the find command search to a given path only(ie: say only find file in apps/cmplus/datamigration/data path... (3 Replies)
Discussion started by: abhi_n123
3 Replies

7. Shell Programming and Scripting

Issue with Find command on Linux

Hi, I am issuing find command below mentioned ways but it givs different count. I don't understand the behaviour. Could any one have any clue? $ find . -mtime -5 -maxdepth 1 -exec ls -lrt {} \; | wc -l 169 $ find . -mtime -5 -maxdepth 1 | wc -l 47 $ find . -mtime -5 -maxdepth 1 | wc -l... (2 Replies)
Discussion started by: siba.s.nayak
2 Replies

8. UNIX for Dummies Questions & Answers

Extrange Find command Issue

Hi all, i'm new at shell scripting world... I'm working on a script for searching old files on a server, this scripts runs with a configuration file wich indicates where to search the files, the script should search for all files that are older than an x qty of days, and the only clue that i have... (9 Replies)
Discussion started by: juanklavera
9 Replies

9. UNIX for Dummies Questions & Answers

Issue with find command using links

Hi, Having a simple issue with find command on Sun. The command works fine if the variable is set to the actual filesystem but fails when the variable is set to a link which is pointing to the same filesystem. export DUMPDEST=/oradata1/exports/pbm - Set the variable ... (2 Replies)
Discussion started by: win_vin
2 Replies

10. Shell Programming and Scripting

An issue with find command.

Hi all, I have a shell script(ksh) which has the code as follows. ------------------ cd $mydir for i in `find ./ -type f -mtime +$k` do echo $i done ----------------------- And in $mydir , i have some files which have space in theie names like "Case att15". The out put of the... (6 Replies)
Discussion started by: rajugp1
6 Replies
Login or Register to Ask a Question