Writte a script to copy the files older than 7 days using find and cp


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Writte a script to copy the files older than 7 days using find and cp
# 1  
Old 04-29-2013
Writte a script to copy the files older than 7 days using find and cp

Hi
I'm trying to writte a script (crontab) to copy files from one location to another... this is what i have:

Code:
find . -name "VPN_CALLRECORD_20130422*" | xargs cp "{}" /home/sysadm/patrick_temp/

but that is not working this is the ouput:
Code:
cp: Target ./VPN_CALLRECORD_20130422111500_20130422113000_136777.csv must be a directory
Usage: cp [-f] [-i] [-p] [-@] f1 f2
       cp [-f] [-i] [-p] [-@] f1 ... fn d1
       cp -r|-R [-H|-L|-P] [-f] [-i] [-p] [-@] d1 ... dn-1 dn

I'm not sure what is wrong, i'm using SOLARIS 10.

Do you have any idea of what is wrong ?
# 2  
Old 04-29-2013
Don't think xargs takes {} like that.

Code:
find . -name "VPN_CALLRECORD_20130422*" | while read FILE
do
        echo cp "$FILE" /path/to/destination
done

Remove the echo once you've tested and are sure it does what you want.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 04-29-2013
use the -exec option to find.

Code:
find . -type f -name "VPN_CALLRECORD_20130422*" -exec cp -v "{}" /home/sysadm/patrick_temp/ \;

This User Gave Thanks to frank_rizzo For This Post:
# 4  
Old 04-29-2013
Code:
find . -type f -name "VPN_
CALLRECORD_20130422*" -exec cp "{}" /home/sysadm/
patrick_temp/ +

-exec handles
special file names well.
+ can be faster than \;

Last edited by MadeInGermany; 04-29-2013 at 09:26 PM.. Reason: -type f is even safer
# 5  
Old 04-29-2013
Quote:
Originally Posted by MadeInGermany
+ can be faster than \;
Probably true but that option is not portable.
# 6  
Old 05-02-2013
Hi all, my thanks to Corona688 and frank_rizzo for your reply, both scripts worked successfully , but the one of frank_rizzo worked removing "-v" because it was triggering "invalid option". Thanks guys.

The one of MadeInGermany didn't work because of this:
root@tefpebe01> find . -type f -name "VPN_CALLRECORD_20130502*" -exec cp "{}" /home/sysadm/patrick_temp/ +
find: incomplete statement


anyway many thanks because the intention of help, i forgot to tell you that i'm working on solaris 10, maybe there is a difference .
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find files not matching multiple patterns and then delete anything older than 10 days

Hi, I have multiple files in my log folder. e.g: a_m1.log b_1.log c_1.log d_1.log b_2.log c_2.log d_2.log e_m1.log a_m2.log e_m2.log I need to keep latest 10 instances of each file. I can write multiple find commands but looking if it is possible in one line. m file are monthly... (4 Replies)
Discussion started by: wahi80
4 Replies

2. UNIX for Dummies Questions & Answers

Find all log files under all file systems older than 2 days and zip them

Hi All, Problem Statement:Find all log files under all file systems older than 2 days and zip them. Find all zip files older than 3days and remove them. Also this has to be set under cron. I have a concerns here find . -mtime +2 -iname "*.log" -exec gzip {} Not sure if this will work as... (4 Replies)
Discussion started by: saurabh.mishra
4 Replies

3. Shell Programming and Scripting

Find command to search and delete files older than 1 days at a desired location

Hello All, Can someone please help me out in creating the find command to search and delete files older than 1 days at a desired location. Thanks in advance for your help. (3 Replies)
Discussion started by: Pandee
3 Replies

4. UNIX for Dummies Questions & Answers

How do I find files which are older than 30 days and greater than 1GB

Hi All, I know the separate commands for finding files greater than 30 days and finding files greater than 1GB. How do I combine these two commands? Meaning how do I find files which are > 1GB and older than 30 days? ;) (4 Replies)
Discussion started by: Hangman2
4 Replies

5. UNIX for Advanced & Expert Users

find files older than 30 days old

Hello, I have a script which finds files in a directory that are older than 30 days and remove them. The problem is that these files are too many and when i run this command: find * -mtime +30 | xargs rm I run this command inside the directory and it returns the error: /usr/bin/find:... (8 Replies)
Discussion started by: omonoiatis9
8 Replies

6. UNIX Desktop Questions & Answers

Find files older than 10 days

What command arguments I can use in unix to list files older than 10 days in my current directory, but I don't want to list the hidden files. find . -type f -mtime +15 -print will work but, it is listing all the hidden files., which I don't want. (4 Replies)
Discussion started by: Pouchie1
4 Replies

7. Shell Programming and Scripting

How to find files older than 30 days

Dear Friends, I have two queries. 1) I want to see the list of folders which were created 29 days ago. 2) I want to see the folders in which last created file is older than 29 days. Can it be done? Thank you in advance Anushree (4 Replies)
Discussion started by: anushree.a
4 Replies

8. Red Hat

Find files older than 30 days in directories and delete them

Hi, I have dummies questions: My script here can find the files in any directories older than 30 days then it will delete the files but not the directories. I would like to also be able to delete the directories that hold old files more than 30 days not just the files itself. find . -type f... (2 Replies)
Discussion started by: lamoul
2 Replies

9. Shell Programming and Scripting

Find files older than 20 days & not use find

I need to find files that have the ending of .out and that are older than 20 days. However, I cannot use find as I do not want to search in the directories that are underneath the directory that I am searching in. How can this be done?? Find returns files that I do not want. (2 Replies)
Discussion started by: halo98
2 Replies

10. UNIX for Dummies Questions & Answers

Find files older than 5 days and remove tem after listing

need help with this ... Find files older than 5 days and remove tem after listing list "test" file older than 5 days and then remove them (1 Reply)
Discussion started by: ypatel6871
1 Replies
Login or Register to Ask a Question