I assume that the question was rhetorical and that you already know that it won't work. If I understand what you're trying to do, try this:
If the rm command(s) printed look(s) like it(they) do(es) what you want, remove the echo from the find -exec primary to actually remove the selected files.
This User Gave Thanks to Don Cragun For This Post:
Thank you. It worked but I missed my criteria - I need to exclude the "ABC" and "XYZ" directory contents in the above recursive command output. Any idea ?
---------- Post updated at 02:57 AM ---------- Previous update was at 02:52 AM ----------
Quote:
Originally Posted by Don Cragun
I assume that the question was rhetorical and that you already know that it won't work. If I understand what you're trying to do, try this:
If the rm command(s) printed look(s) like it(they) do(es) what you want, remove the echo from the find -exec primary to actually remove the selected files.
Based on the above Inputs I framed like below to list and delete the files :
But to be clear, I need to exclude "ABC" and "XYZ" directories not file names. Sorry for the confusion.
If you want to test it without making any changes to the file hierarchy, put an echo in front of the rm:
Note that with -exec ls -lrt {} \;, the -r and -t are meaningless. With -exec ls -lrt {} +, groups of files will be sorted in reverse time order; but there is no guarantee that all of the files you want to process will be processed by a single invocation of ls.
If the ls output and the echo output shows that it is selecting the files you want to remove, take out the echo to actually remove the selected files.
Note also that if you want to run slower and take more system resources, you can use -exec rm {} \; instead of -exec rm {} +, but you can't combine \; and \) into \;) as you did in your script.
If you want to test it without making any changes to the file hierarchy, put an echo in front of the rm:
Note that with -exec ls -lrt {} \;, the -r and -t are meaningless. With -exec ls -lrt {} +, groups of files will be sorted in reverse time order; but there is no guarantee that all of the files you want to process will be processed by a single invocation of ls.
If the ls output and the echo output shows that it is selecting the files you want to remove, take out the echo to actually remove the selected files.
Note also that if you want to run slower and take more system resources, you can use -exec rm {} \; instead of -exec rm {} +, but you can't combine \; and \) into \;) as you did in your script.
Some how the rm is not executing in the above command, it is listing all the files but not removing. I have removed echo command.
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)
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)
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)
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)
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)
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)
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)