[Solved] Issue with deleting files through find


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Solved] Issue with deleting files through find
# 1  
Old 07-10-2013
[Solved] Issue with deleting files through find

Hi,
I have a script similar to this
Code:
#!/bin/ksh
cd /orcl/bir/eod_badfiles
find ./ -type f -name "*.csv" -mtime +6 -exec rm -f {} \;
find ./ -type f -name "*.bad" -mtime +6 -exec rm -f {} \;
cd /orcl/bir
find ./ -type f -name "*.log" -mtime +6 -exec rm -f {} \;

This was working fine in one of the environment. When I'm using it in another environment it's giving an error.
Code:
find: ./lost+found: Permission denied

This is because a root directory lost+found is present. How can i skip subdirectories and delete only the files only from the current directory?

Or is there a way where the script would proceed ignoring the permission denied error?

Last edited by Don Cragun; 07-10-2013 at 01:53 PM..
# 2  
Old 07-10-2013
you can try ignoring the directory

Code:
 
find ./ -type d \( ! lost+found \) -type f -name "*.csv" -mtime +6 -exec rm -f {} \;

if you consider it as warning messages

redirect the find output to 2> /dev/null
This User Gave Thanks to vidyadhar85 For This Post:
# 3  
Old 07-10-2013
I'm new to unix. I would like to ignore the error. Probably that's better as in other environments there will be other subdirectories.

So u mean to say, I've to do this way. I hope it will ignore any permission denied error and proceed ahead. Also this is running through Autosys job so I hope the job will turn successful.

Code:
#!/bin/ksh
cd /orcl/bir/eod_badfiles
find ./ -type f -name "*.csv" -mtime +6 -exec rm -f {} \; 2> /dev/null
find ./ -type f -name "*.bad" -mtime +6 -exec rm -f {} \; 2> /dev/null
cd /orcl/bir
find ./ -type f -name "*.log" -mtime +6 -exec rm -f {} \; 2> /dev/null

---------- Post updated at 09:45 AM ---------- Previous update was at 07:29 AM ----------

Quote:
Originally Posted by vidyadhar85
you can try ignoring the directory

Code:
 
find ./ -type d \( ! lost+found \) -type f -name "*.csv" -mtime +6 -exec rm -f {} \;

if you consider it as warning messages

redirect the find output to 2> /dev/null
This is not working. It is giving error.
Code:
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

---------- Post updated at 09:46 AM ---------- Previous update was at 09:45 AM ----------

Can someone please help with this request?
# 4  
Old 07-10-2013
which OS you are using? Is it solaris?
# 5  
Old 07-10-2013
Quote:
Originally Posted by Gangadhar Reddy
I'm new to unix. I would like to ignore the error. Probably that's better as in other environments there will be other subdirectories.

So u mean to say, I've to do this way. I hope it will ignore any permission denied error and proceed ahead. Also this is running through Autosys job so I hope the job will turn successful.

Code:
#!/bin/ksh
cd /orcl/bir/eod_badfiles
find ./ -type f -name "*.csv" -mtime +6 -exec rm -f {}  2> /dev/null \; 
find ./ -type f -name "*.bad" -mtime +6 -exec rm -f {} 2> /dev/null \; 
cd /orcl/bir
find ./ -type f -name "*.log" -mtime +6 -exec rm -f {} 2> /dev/null \;

---------- Post updated at 09:45 AM ---------- Previous update was at 07:29 AM ----------



This is not working. It is giving error.
Code:
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

---------- Post updated at 09:46 AM ---------- Previous update was at 09:45 AM ----------

Can someone please help with this request?
You can use maxdepth option in find command to search in current directory only.

Cheers!
-R
This User Gave Thanks to rangarasan For This Post:
# 6  
Old 07-10-2013
Yup. I used the max depth option and it worked.
Code:
find ./ -maxdepth 1 -type f -name "*.csv" -mtime +6 -exec rm -f {} \;

Thanks everyone for all your help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

[Solved] How to find particular files ina directory?

Hi, I am trying to write a script to find some files in a directory Example: if i have files like 2014-02-01_aaaa.txt 2014-02-01_bbbb.txt 2014-02-01_cccc.txt 2014-02-01_dddd.txt and some other files how can i just check to see if there four files exits or not i tried some thing like this... (5 Replies)
Discussion started by: vikatakavi
5 Replies

2. Ubuntu

[Solved] Deleting hash files

dear all, I have trouble handling the files with the # (ie: #file.txt). I try deleting them several ways, but get failed everytime. Please let me know how to a.) delete them b.) how to get rid of creation of these files. thank you very much, emily (4 Replies)
Discussion started by: emily
4 Replies

3. Red Hat

find . -name '*.req' -mtime +2 -exec rm {} \; not deleting files

i want to remove *.req files from directory /opt/FFCL8001/oracle/inst/apps/FFCL8001_lhrho/logs/appl/conc/log i executed command find . -name '*.req' -mtime +2 -exec rm {} \; but it is running since hours and free space in /opt is same as old 7.4 GB . why it is not removing files ? (5 Replies)
Discussion started by: rehantayyab82
5 Replies

4. Shell Programming and Scripting

issue while moving files using find command

Hi Friends, I'm facinf issue while moving large files using find command.I've a scenario like i've to move one day older files from one directory to anothe directory.I'm using the below command. find $src_dir -name error -prune -o -type f -mtime +1 -exec mv {} $dest_dir \; some times... (1 Reply)
Discussion started by: mail2mura
1 Replies

5. Shell Programming and Scripting

[Solved] Find Files Created Recently and Print

Hi, I'm looking to create a script which will find all the files created in the last 24h in a directory starting with a few different letters and send them to the printer. This would be run through the cron each morning to print the last 24 hours files. I have started with this to find all... (2 Replies)
Discussion started by: rab
2 Replies

6. Shell Programming and Scripting

Issue while moving files using find command

Hi All, I'm facing this below error when I move files using find command....Please help out...... $ find /home/aa/ab -mtime +90 -type f -exec mv -f {} /home/aa/ab/ac \; mv: 0653-405 /home/aa/ab/ac/MP_060520111245.csv and /home/aa/ab/ac/MP_060520111245.csv are identical. mv: 0653-405... (2 Replies)
Discussion started by: HemaV
2 Replies

7. UNIX for Dummies Questions & Answers

Find in files issue

So, I'm back with another, pretty much similar question. I've got a catalogue, with about 60k text files. Every file contains a single line of text with variable number of characters. Here are some examples, which will make my case easier to understand: Example file 1. <item id="2506"/><item... (3 Replies)
Discussion started by: kalik
3 Replies

8. HP-UX

[Solved] Deleting a all core files present in file systems ?

Hi All IN HPUX 11 How to delete an unwanted "core" file with a single command which is being generated in different locations of the system the command should be able to free up the space occupied by all "core" file which is present in different folders and filesytems in a system ... (5 Replies)
Discussion started by: sidharthmellam
5 Replies

9. Shell Programming and Scripting

deleting files inside shell script - ( using find)

Hi, I am using the command find /apps/qualdb/gpcn/scripts/cab_outbound/archive -name 'z*' -mtime +28 -exec rm {} \; in unix command prompt for deleting the files in my unix system under the specfied folder. It was succesfull. But when i running this command inside a shell script name... (2 Replies)
Discussion started by: Jayaram.Nambura
2 Replies

10. Shell Programming and Scripting

Deleting files using find command

I want to find the files and delete all the files except the last file. I am using find command , I am sending the find output to a file and getting all the lines except the last one and sending it to the remove command . This is not working. can anyone help me out to do it in the find command... (8 Replies)
Discussion started by: deepaklanka
8 Replies
Login or Register to Ask a Question