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.
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
The solution is simple: stop using xargs.
If you want a long listing of files that find finds that meet your criteria, try:
and if you want to get a long format listing of the files and also remove them, try:
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.
Thank you.
Just for understanding, what does " + "do in the command
The command:
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.)
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.
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 ?
---
AIX 7.1
Last edited by karumudi7; 04-26-2015 at 06:17 PM..
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)