How to delete directories and files with xargs?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to delete directories and files with xargs?
# 1  
Old 05-26-2014
How to delete directories and files with xargs?

Hello,

i have an dynamical apache_cache that I need to clean all days (older tant one day) with an unix command :

Code:
find /usr/IBM/HTTPServer/apache_cache/ -name '*' -mtime +1 -print0|xargs -0 rm -r --

but it didn't work.

Could you explain me why.

So I will put below all my script :
Code:
#!/bin/sh
# About the script
#==============================================================================
# author       : Vision IT Group
# version      : 1.0
# date written : January 2014
# application  : delete -mtime +1 files in the apache_cache
#==============================================================================
#
################################ PATH ###########################################

DATUM1="$(date +%y%m%d.%H%M%S)"
NAME="CacheIHS_Logs"
PATHCACHELOGS="/usr/IBM/HTTPServer/logs/"
LOG_FILE=$PATHCACHELOGS/$NAME.log

################################ CODE ###########################################
#echo "find files to delete in the cache"
#echo "---------------------------------"

find /usr/IBM/HTTPServer/apache_cache/ -name '*' -mtime +1 -print0|xargs -0 rm -r --
if  [ $? -eq 0 ]
then
#Define Logfilename
#------------------
echo "Clear done ..."$DATUM1 >> $LOG_FILE
echo "---------------------------------------" >> $LOG_FILE
else
echo "Error during cleaning log files..." >> $LOG_FILE
fi

Thanks a lot

Last edited by Scrutinizer; 05-26-2014 at 08:07 AM.. Reason: code tags
# 2  
Old 05-26-2014
At the top of my head:

1. Try just the find command and see if there's any output:
Code:
find /usr/IBM/HTTPServer/apache_cache/ -name '*' -mtime +1

2. Try without -print0 and xargs -0
Code:
find /usr/IBM/HTTPServer/apache_cache/ -name '*' -mtime +1 | xargs rm -r

3. If the interactive mode is aliased to rm, try rm -rf
# 3  
Old 05-26-2014
Quote:
Originally Posted by steiner
Hello,

i have an dynamical apache_cache that I need to clean all days (older tant one day) with an unix command :

Code:
find /usr/IBM/HTTPServer/apache_cache/ -name '*' -mtime +1 -print0|xargs -0 rm -r --

but it didn't work.

Could you explain me why.
First, you should explain to us. How did it not work? Show us the error messages. If there weren't any, then at least show us an example of the file hierarchy before running the command, after running the command, and how it should have been after running the command.

You say you "need to clean all days". What is a "day"? A directory? A file? Again, show us a sample of the filesystem hiearchy.

Is everything to be deleted in a single directory, or will find descend into subdirectories? If it will descend, will you be deleting only files, only directories, or both? Depending on the exact nature of the task, a depth-first traversal may be necessary. Again, a better explanation of what's going on is required.

Why are you using -name '*'? That will always evaluate to true. It's redundant.

Regards,
Alister
# 4  
Old 05-26-2014
If you're already running "find" why not just put the "rm" command there?

Code:
find /usr/IBM/HTTPServer/apache_cache/ -type f -mtime +1 -exec rm {} \;

# 5  
Old 05-27-2014
Hello,

thanks for your replies. So i need to give more explications sorry.

the command :
Code:
find /usr/IBM/HTTPServer/apache_cache/ -type f -mtime +1 -exec rm {} \;

is ok i used it before but our Customer said us to use xargs because it's more efficient and quicker.

Yes it is necessary to clean all days so the rule is just to keep one day

The hiearchy is :
Code:
drwx------ 3 nobody nobody 4096 May 26 10:53 RWn
drwx------ 3 nobody nobody 4096 Jan 27 19:00 T0t
drwx------ 3 nobody nobody 4096 May 26 13:19 T6Q
drwx------ 3 nobody nobody 4096 Jan 27 19:00 TKg
drwx------ 3 nobody nobody 4096 Jan 27 19:00 UTN

in the directory UTN (per example) are others directories and files that must be clear if there are older than one day. Sometimes the directories could be must spaces.

So if you need more informations, no Problem...

Thanks for your help

Last edited by Franklin52; 05-27-2014 at 05:48 AM.. Reason: Please use code tags
# 6  
Old 05-27-2014
Honestly curious.

Do any of these work?

Code:
find /usr/IBM/HTTPServer/apache_cache/ -type f -mtime +1 -print0 | xargs -0 -n1 rm

Code:
find /usr/IBM/HTTPServer/apache_cache/ -type f -mtime +1 -print0 | xargs -0 -n1 -I {} rm {}

# 7  
Old 05-27-2014
Change:
Code:
find /usr/IBM/HTTPServer/apache_cache/ -type f -mtime +1 -exec rm {} \;

to:
Code:
find /usr/IBM/HTTPServer/apache_cache/ -type f -mtime +1 -exec rm {} +

It is more efficient and quicker than using xargs.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Delete Directories and its files that begin with the same character string

I wrote a shell script program that supposed to delete any directories and its files that begin with the same character string . The program is designed to delete directories and its files that are one day old or less and only the directories that begin with the same character string. The problem... (1 Reply)
Discussion started by: dellanicholson
1 Replies

2. Shell Programming and Scripting

How to delete all the files and folders inside all the directories except some specific directory?

hi, i have a requirement to delete all the files from all the directories except some specific directories like archive and log. for example: there are following directories such as A B C D Archive E Log F which contains some sub directories and files. The requirement is to delete all the... (7 Replies)
Discussion started by: Little
7 Replies

3. Shell Programming and Scripting

Delete files in group of directories

OS: SUNOS 5.10 i386 Hello guys I wrote a shell script in bash shell to delete the files less than 30 days old. The following is the script. ======================================= #!/bin/bash for dirs in `/clu04/oracle/directory_list.lst` do find $dirs -type f -mtime -30 -exec rm {} \;... (3 Replies)
Discussion started by: zacsparrow
3 Replies

4. Shell Programming and Scripting

Script to go Into Directories and Find/Delete files

I have a task, I usually do manually, but with growing responsibilities I tend to forget to do this weekly, I want to write a script that automates this, but I cant seem to work it out in my head, I have the shell of it out, but need help, and you guys have helped me with EVERY problem I have... (5 Replies)
Discussion started by: gkelly1117
5 Replies

5. Homework & Coursework Questions

Find and delete empty files and directories

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Need to make a script, to remove all empty files and folders from current category. It also should show the name... (2 Replies)
Discussion started by: Itixop
2 Replies

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

7. Shell Programming and Scripting

Delete files from sub-directories over 7 days

Can any one please help me in deleting all the Files over 7 days from sub-directories A, B, C... Top-Directory Sub-Directory-A File-1 File-2 ..... File-n Sub-Directory-B File-1 File-2 ..... File-n Sub-Directory-C File-1 ... (1 Reply)
Discussion started by: sureshcisco
1 Replies

8. Shell Programming and Scripting

Search directories for files with zero sizes to delete

Hi, I am trying to write a script that will use ls on a directory and list the files one at a time and their size. If the size is 0 i want it to ask me if I want to delete it (yes or no). If I say yes, I want it to delete but it won't know what the file name is just from running from the script.... (2 Replies)
Discussion started by: akeenabawa
2 Replies

9. Shell Programming and Scripting

A Batch job to delete files from various directories

Hi, I have a shell script to find files older than 'X' days ($2) in directory path ($1) and delete them. Like this: my_file_remover.sh /usr/home/c 90 Now, I need to modify this script and add it in CRON, so that it checks other directories also. Like: my_file_remover.sh /usr/home/c... (3 Replies)
Discussion started by: guruparan18
3 Replies

10. UNIX for Dummies Questions & Answers

delete pattern files in sub directories

Hello friends, I am compiling some set of SQL scripts in a set of sub directories demoed as below. After compiling log files are being created. Each and every time after compiling time I had to go subdir by subdir to delete the log files. I am sure there should be simple way to look for all log... (4 Replies)
Discussion started by: adurga
4 Replies
Login or Register to Ask a Question