List and Delete Files which are older than 7 days, but have white spaces in file name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting List and Delete Files which are older than 7 days, but have white spaces in file name
# 1  
Old 02-22-2015
IBM List and Delete Files which are older than 7 days, but have white spaces in file name

I need to list and delete all files in current older which are olderthan 7 days. But my file names have white spaces. Before deleting I want to list all the files, so that I can verify.
Code:
find . -type f -mtime +7 | xargs ls -l {}

But the ls command is the working on the files which have white spaces.

Any other ideas ?

Last edited by rbatte1; 02-23-2015 at 07:02 AM.. Reason: Changed ICODE tags to just CODE tags
# 2  
Old 02-22-2015
The solution is simple: stop using xargs.
If you want a long listing of files that find finds that meet your criteria, try:
Code:
find . -type f -mtime +7 -exec ls -l {} +

and if you want to get a long format listing of the files and also remove them, try:
Code:
find . -type f -mtime +7 -exec ls -l {} \; -exec rm {} \;

If you had a file named a b that hasn't been modified for more than 7 days, the command you used would try to give you a long format listing for files named a and b instead of the file named a b.
# 3  
Old 02-22-2015
Thank you.
Just for understanding, what does " + "do in the command
# 4  
Old 02-22-2015
Quote:
Originally Posted by karumudi7
Thank you.
Just for understanding, what does " + "do in the command
The command:
Code:
find -type f -exec utility initial_arguments... {} +

in the specific case using -exec ls -l {} + invokes the ls utility with the -l option and operands specifying the names of one or more files (but limited to a number of operands that will not cause the invocation to fail due to an argument list too long error).

Using a semicolon instead of a plus sign to terminate the -exec primary will invoke the ls utility for each file instead of grouping a number of files together as operands to a single invocation of ls. (And, the semicolon has to be escaped or quoted, because it has special meaning to the shell.)
# 5  
Old 02-23-2015
Probably in your case -mtime +7 is sufficient.
But it would have problems with files that are extracted from a tar or zip archive, getting a time stamp from the past (or the future).
In this case -ctime +7 is an improvement.
But a regular file backup (or virus scan) can reset atime (for convenience), and ctime changes.
The following is robust with archives and weekly full backups: \( -mtime +7 -o -mtime -0 \) -ctime +5, and run daily.
# 6  
Old 04-26-2015
IBM

I want to remove the files with the pattern *.__* but need to eliminate the files which contains "ABC" and "XYZ". SO framed a syntax like below. Will this work ?

Code:
find . -name "*.__*" -mtime +60 -exec ls -lrt {} + | grep -iv "ABC" | grep -iv "XYZ" ; -exec rm {} \;

---
AIX 7.1

Last edited by karumudi7; 04-26-2015 at 06:17 PM..
# 7  
Old 04-26-2015
Code:
find . -name "*.__*" -mtime +60 ! -name "*[Aa][Bb][Cc]*" ! -name "*[Xx][Yy][Zz]*" -exec rm {} \;

This User Gave Thanks to MadeInGermany For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Linux

Finding files older than x days within directory with spaces

Hi, I am trying to run a command that finds all files over x amount of days, issue is one of the directories has spaces within it. find /files/target directory/*/* -type f -mtime +60 When running the above the usual error message is thrown back + find '/files/target\' 'directory/*/*' -type... (1 Reply)
Discussion started by: Ads89
1 Replies

2. UNIX for Advanced & Expert Users

Delete 5 days older files from sftp

As one of our requirement was to connect to remote Linux server through SFTP connection and delete some files which are older than 7 days. I used the below piece of code for that, SFTP_CONNECTION=`sftp user_id@host ... cd DESIRED_DIR; find /path/to/files* -mtime +5 -exec rm -rf {} \; bye... (2 Replies)
Discussion started by: ATWC
2 Replies

3. Shell Programming and Scripting

Delete files older than 10 Days in a directory

Hi All I want to remove the files with name like data*.csv from the directory older than 10 days. If there is no files exists to remove older than 10 days, It should not do anything. Thanks Jo (9 Replies)
Discussion started by: rajeshjohney
9 Replies

4. Shell Programming and Scripting

Delete files older than X days.

Hi All, I am using below code to delete files older than 2 days. In case if there are no files, I should log an error saying no files to delete. Please let me know, How I can achive this. find /path/*.xml -mtime +2 Thanks and Regards Nagaraja. (3 Replies)
Discussion started by: Nagaraja Akkiva
3 Replies

5. Solaris

Delete files older than 30 days

Hi all, I want to delete log files with extension .log which are older than 30 days. How to delete those files? Operating system -- Sun solaris 10 Your input is highly appreciated. Thanks in advance. Regards, Williams (2 Replies)
Discussion started by: William1482
2 Replies

6. Shell Programming and Scripting

delete files more than 15 days older

i have to delete files which are older than 15 days or more except the ones in the directory Current and also *.sh files i have found the command for files 15 days or more older find . -type f -mtime +15 -exec ls -ltr {} \; but how to implement the logic to avoid directory Current and also... (3 Replies)
Discussion started by: ali560045
3 Replies

7. UNIX for Dummies Questions & Answers

Delete files older than 30 days

This is driving me crazy. How can I delete files in a specifc directory that are over 30 days old? Thanks in advance. (3 Replies)
Discussion started by: tlphillips
3 Replies

8. UNIX for Dummies Questions & Answers

How can I delete files older than 7 days?

I will like to write a script that delete all files that are older than 7 days in a directory and it's subdirectories. Can any one help me out witht the magic command or script? Thanks in advance, Odogboly98:confused: (3 Replies)
Discussion started by: odogbolu98
3 Replies

9. UNIX for Dummies Questions & Answers

delete files older than 7 days

can anyone tell me how I would write a script in ksh on AIX that will delete files in a directory older than 7 days? (1 Reply)
Discussion started by: lesstjm
1 Replies
Login or Register to Ask a Question