BASH : Find files by date and shred them


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting BASH : Find files by date and shred them
# 1  
Old 06-13-2005
BASH : Find files by date and shred them

Good afternoon everyone,

For security reasons, I need to delete files on a HDD I have to send after the ending of a demo.
I need to find all the files which not end by ".log" and which have been created for 45 days.
After getting the file list, I would like to use the shred command.

It would be like this :
Code:
$ find / -regex '^.*(!(\.log))$' -ctime 45 | xargs shred -fuvz

But this command line does not work.

Any help would be relevant,
Thanks a lot.

Christophe
# 2  
Old 06-13-2005
There is no way in Unix to get a files creation time. You can find a files modification time, mtime, (you have ctime - the time when a files status was changed - check out the find man page), and if you can guarantee the file has not been modified since it was created, you have your creation time.

Anyway, the -regex looks to be an overcomplication.

find / ! -name "*.log" -mtime 45 | xargs shred -fuvz

If this doesn't work, chances are the files would have been modified after creation.

EDIT; if running this as root, and some important system files were modified 45 days ago, you are staring into the eyes of doom with a command like that.

Do a
find / ! -name "*.log" -mtime 45 -print
to see the output before adding the "destructive" pipe through to xargs shred.

Cheers
ZB

Last edited by zazzybob; 06-13-2005 at 11:34 AM..
# 3  
Old 06-13-2005
Quote:
Originally Posted by cbismuth
I need to find all the files which not end by ".log" and which have been created for 45 days.
After getting the file list, I would like to use the shred command.
Quote:
Originally Posted by zazzybob
find / ! -name "*.log" -mtime 45 | xargs shred -fuvz

EDIT; if running this as root, and some important system files were modified 45 days ago, you are staring into the eyes of doom with a command like that.

Do a
find / ! -name "*.log" -mtime 45 -print
to see the output before adding the "destructive" pipe through to xargs shred.
I think it's actually worse than you think, ZB. Since the OP used the the past perfect tense, I would read that as:
... -mtime +44 ... # (I could not bring myself to type such a dangerous command in its entirety)

Destroy all files older than 45 days except for log files and a few newer files. Smilie Smilie

I can believe an attempt to destroy all files, but trying to leave stuff behind is weird. In any event shredding /dev/mem or /dev/kmem will panic the system for sure. But I doubt the command will get that far. We need some clarification here.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Find the count of files by last created date based on the given date range

My unix version is IBM AIX Version 6.1 I tried google my requirement and found the below answer, find . -newermt “2012-06-15 08:13" ! -newermt “2012-06-15 18:20" But newer command is not working in AIX version 6.1 unix I have given my requirement below: Input: atr files: ... (1 Reply)
Discussion started by: yuvaa27
1 Replies

2. UNIX for Advanced & Expert Users

Find all files other than first two files dates & last file date for month

Hi All, I need to find all files other than first two files dates & last file date for month and month/year wise list. lets say there are following files in directory Mar 19 2012 c.txt Mar 19 2012 cc.txt Mar 21 2012 d.txt Mar 22 2012 f.txt Mar 24 2012 h.txt Mar 25 2012 w.txt Feb 12... (16 Replies)
Discussion started by: Makarand Dodmis
16 Replies

3. Shell Programming and Scripting

Find file that matches today's date in filename and move to /tmp in bash

I'm having problems with my bash script. I would like to find a file matching today's date in the filename, i.e. my_file_20120902.txt and then move it to a different directory, i.e. /tmp. Thanks. (1 Reply)
Discussion started by: jamesi
1 Replies

4. UNIX for Dummies Questions & Answers

Find all files before a certain date

Hi all, I am a beginner and I was hoping you can help me out. I am doing some PDF cleanup and I am looking for a command to search for all PDFs in a certain folder that are older than 2008 for example. This is what I have so far: find ./ -mtime +500 -name '*.pdf' >/test/results.txt ... (13 Replies)
Discussion started by: SyphaX
13 Replies

5. Shell Programming and Scripting

bash script to find date based on search string for continuesly updating file

Hi All, I am very new to UNIX and I have tried this for a longtime now and unable to crack it.... There is a file that is continuously updating. I need to search for the string and find the date @ which it updated every day..... eg: String is "work started" The log entry is as below: ... (1 Reply)
Discussion started by: Nithz
1 Replies

6. Shell Programming and Scripting

Find older files than specified date

Hi, I need to find out list of files which are older than specific date. I am using 'find, and newer' commands but its not giving the correct result. Can you please help to findout the list of files. thanks (2 Replies)
Discussion started by: Satyak
2 Replies

7. Shell Programming and Scripting

find files for a particular date and delete

How can I delete files for a particular date ? I apologize in advance If there is solution please put the link. Thanks, (5 Replies)
Discussion started by: jville
5 Replies

8. Shell Programming and Scripting

Can I know find syntax to find given date files

Hi All, Can i use find command to know given date files? If yes, then please let me know the syntax for the same. Thanks in advance for your postive responses Regards, Bachegowda (3 Replies)
Discussion started by: bache_gowda
3 Replies

9. Shell Programming and Scripting

find files by date

************************************************** Purpose : find files by date Condition: olther than | newer than | between _date1 _date2 Date format: 2007/10/28 ************************************************** Please help me Thanks (1 Reply)
Discussion started by: kani
1 Replies

10. UNIX for Advanced & Expert Users

Find all the files after the date?

Hi I am using #!/bin/sh DATE="$1" FILE="$2" FLIST="" for f in $FILE do FDATE=$(ls -l $f | awk '{ print $6 }') if ;then FLIST="$FLIST $f" fi done && echo $FLIST || echo "Sorry no files found to match $DATE date." the below... need correction whne i execute the above (1 Reply)
Discussion started by: gkrishnag
1 Replies
Login or Register to Ask a Question