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
# 15  
Old 04-26-2015
IBM

Quote:
Originally Posted by Don Cragun
Strange. Please show us the exact output you get when your run the commands:
Code:
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} + -exec rm {} + \) > out1.1 2> out2.1
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} + -exec rm {} + \) > out1.2 2> out2.2
ls -l out[12].[12]
for i in 1 2
do      echo "** out2.$i"
        cat out2.$i
done

I am capturing the output to a log and following are the outputs :

Code:
Run 1: out1.1 :
Files older than 60 days :
-rwxrwxrwx    1 test_user test_user          0 Nov 09 18:28 ./Test/one1.__0
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__9
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__8
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__7
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__6
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__5
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__4
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__3
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__2
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__1
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__0

Code:
Run 2: out1.2
Files older than 60 days :
-rwxrwxrwx    1 test_user test_user          0 Nov 09 18:28 ./Test/one1.__0
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__9
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__8
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__7
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__6
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__5
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__4
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__3
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__2
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__1
-rwxrwxrwx    1 test_user test_user          0 Dec 08 17:29 ./Test/November 2014.__0

There are no errors i.e; out2.1, out 2.2 both are empty files.
# 16  
Old 04-26-2015
Looking more closely at the standard, when using -exec command +, the primary always returns success even if one or more executions of the given command fail. Furthermore, if there are two or more primaries like this, the order in which they are executed is unspecified. (So, the rm commands for a group of files could be executed before, after, or simultaneously with the ls commands for the same or different groups of files.) I don't understand why this would keep the rm commands from working, but it could cause files to be removed before they were listed by ls.

When the echo was in the -exec echo rm ..., did you see any output from the echo?

Does the following semicolon version work?
Code:
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} \; -exec rm {} \; \)

If not; what is the output from the command:
Code:
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} \; -exec echo rm {} \; \)

This User Gave Thanks to Don Cragun For This Post:
# 17  
Old 04-27-2015
Quote:
Originally Posted by Don Cragun
Looking more closely at the standard, when using -exec command +, the primary always returns success even if one or more executions of the given command fail. Furthermore, if there are two or more primaries like this, the order in which they are executed is unspecified. (So, the rm commands for a group of files could be executed before, after, or simultaneously with the ls commands for the same or different groups of files.) I don't understand why this would keep the rm commands from working, but it could cause files to be removed before they were listed by ls.

When the echo was in the -exec echo rm ..., did you see any output from the echo?

Does the following semicolon version work?
Code:
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} \; -exec rm {} \; \)

If not; what is the output from the command:
Code:
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} \; -exec echo rm {} \; \)

Code:
 
find . \( -name ABC -prune \) -o \( -name XYZ -prune \) -o \( -name "*.__*" -mtime +60 -exec ls -lrt {} \; -exec rm {} \; \)

This worked. Thank you Don!
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