shankshank
asked on
Delete files older than
Running HP UX
I have backups going to a folder, and I want to be able to delete files/folders older than 7 days.
How can I accomplish this?
I have backups going to a folder, and I want to be able to delete files/folders older than 7 days.
How can I accomplish this?
ASKER
No..
This is for UNIX not windows
This is for UNIX not windows
find . -mtime 7 -exec rm '{}' \;
Should do it.
* please test this in non-production before hand *
Should do it.
* please test this in non-production before hand *
ASKER
Will that delete folders too?
Its not my code, so I have not tested it
Depending on how the files are created or accessed you can use the 'find' command.
find /path/to/files -ctime -7 -delete
would delete files created more than 7 days ago. However, you have to be careful using ctime, other options are mtime and atime.
A file could have a ctime of more than 7 days ago, but have been modified or accessed recently and show a newer timestamp in ls.
I would suggest you "man find" and research ctime, mtime and atime before you start to delete.
One way to check things before you delete them is to run
find /path/to/files -ctime -7 -exec ls -al {} \;
And this will list the files that would be deleted with the other command, and you can see if this works as you would expect it.
find /path/to/files -ctime -7 -delete
would delete files created more than 7 days ago. However, you have to be careful using ctime, other options are mtime and atime.
A file could have a ctime of more than 7 days ago, but have been modified or accessed recently and show a newer timestamp in ls.
I would suggest you "man find" and research ctime, mtime and atime before you start to delete.
One way to check things before you delete them is to run
find /path/to/files -ctime -7 -exec ls -al {} \;
And this will list the files that would be deleted with the other command, and you can see if this works as you would expect it.
To answer the question "Will that delete folders too?"
Yes it will! To avoid this add "-type f" to the find command:
find /path/to/files -type f ... ...
wmp
Yes it will! To avoid this add "-type f" to the find command:
find /path/to/files -type f ... ...
wmp
To restrict find to just files add the -type f option to find.
ASKER
is it -ctime +7 or -7
i thought i had to use-
i thought i had to use-
-[acm]time 7 would be files just 7 days ago.
-[acm]time +7 would be all files 7 days or older.
-[acm]time -7 would be all files in last 7 days.
-[acm]time +7 would be all files 7 days or older.
-[acm]time -7 would be all files in last 7 days.
ASKER
jeremy your check command gives phony output
ASKER
by phony i mean it doesnt list what must be deleted. haha
Use only -ls instead of -exec ls ... ...\;
ASKER
I want to list files 5 days or older
So this?
find /BACKUPHD -ctime +5
So this?
find /BACKUPHD -ctime +5
Yep. Add -ls for an "ls -l" like output.
ASKER
/BACKUPHD>find /BACKUPHD -ctime +5 -ls
find: bad option -ls
find: bad option -ls
I use mtime in my scripts with good results. Use the following to check which files will be deleted (replace /path/to/files with the path of the directory you want to clean) :
find /path/to/files -mtime -7 -print
or for only files use:
find /path/to/files -mtime -7 -type f -print
To actually delete them use:
find /path/to/files -ctime -7 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -ctime -7 -type f -exec rm -rf {} \;
cheers!
find /path/to/files -mtime -7 -print
or for only files use:
find /path/to/files -mtime -7 -type f -print
To actually delete them use:
find /path/to/files -ctime -7 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -ctime -7 -type f -exec rm -rf {} \;
cheers!
Seems that HPUX's find doesn't know -ls. Sorry.
If you want 5 days or older use to check:
find /path/to/files -mtime +5 -print
or for only files use:
find /path/to/files -mtime +5 -type f -print
To actually delete them use:
find /path/to/files -ctime +5 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -ctime +5 -type f -exec rm -rf {} \;
find /path/to/files -mtime +5 -print
or for only files use:
find /path/to/files -mtime +5 -type f -print
To actually delete them use:
find /path/to/files -ctime +5 -exec rm -rf {} \;
or to delete only files use:
find /path/to/files -ctime +5 -type f -exec rm -rf {} \;
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
okay i wil l ry this
Dim Fso
Dim Directory
Dim Modified
Dim Files
Set Fso = CreateObject(“Scripting.Fi
Set Directory = Fso.GetFolder(“BACKUP DIRECTORY”)
Set Files = Directory.Files
For Each Modified in Files
If DateDiff(“D”, Modified.DateLastModified,
Next
Change BACKUP FILE's with path to the folder containing the files and then change # with a number of days you want kept
save file as a .VBS and execute using this command: cscript.exe filename.vbs