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
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.
Regards,
Alister
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)