Find and remove all but the latest file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find and remove all but the latest file
# 1  
Old 03-28-2007
Find and remove all but the latest file

Hi,

Would appreciate if someone could help me with the following requirement.

Say I have a directory where a file called abc_$timestamp.txt is created couple of times in a day.
So this directory would have files like

abc_2007-03-28-4-5-7.txt
abc_2007-03-28-3-5-7.txt
abc_2007-03-28-6-5-7.txt
abc_2007-03-28-5-5-7.txt

I need a script to search abc_*.txt and delete all but the latest file.

I know i could use a find command

find . type -f name -"abc_*" -exec rm{}

but , how would i keep the latest file
# 2  
Old 03-28-2007
To retain the latest file created with name abc*.txt and to remove the remaining,

Code:
 ls -lt abc_*.txt | awk '{if(NR!=1) print $9}' | xargs -i rm {}

Another approach. This is based on the timestamp in the filename

Code:
ls -1 abc_*.txt | sort -r | tail +2 |  xargs -i rm {}

HTH,
Mona
# 3  
Old 03-28-2007
Thank You Mona...could you please explain how it ensures that the latest file is not deleted?
# 4  
Old 03-28-2007
In the first command, I am taking the files with name "abc_*.txt". Since i have used -t in the ls command, the file which is created recently will always come first. Then awk will pass the filenames other than the first record(this is the file we need to retain) to the xargs command to delete.

Second command is also quite similar. ls will take all the files starting with "abc_*.txt" and they are sorted by filename in descending order. The file with the latest timestamp will come first and the tail command will filter the first file(which is the latest) and pass the remaining filenames to the xargs to delete.

Hope my explanation is clear
# 5  
Old 03-29-2007
thanks! tail +2 was throwing me off...its clear now...thanks again for your time
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

To find the latest modified file in a directory

I am trying to fetch the latest modified file from a directory using the command find . -type f -exec ls -lt \{\} \+ | head | awk '{print $9}' After the O/P, I get the below mentioned error and the command doesnt terminate at all. find: ls terminated by signal 13 find: ls terminated by... (2 Replies)
Discussion started by: Sree10
2 Replies

2. UNIX for Dummies Questions & Answers

Want to remove all lines but not latest 50 lines from a file

Hi, I have a huge file which has Lacs of lines. File system got full. I want your guys help to suggest me a solution so that I can remove all lines from that file but not last 50,000 lines. I want solution which can remove lines from existing file so that I can have some space left with. (28 Replies)
Discussion started by: prashant2507198
28 Replies

3. Shell Programming and Scripting

Find the latest file based on the date in the filename

Hi, We've a list of files that gets created on a weekly basis and it has got a date and time embedded to it. Below are the examples. I want to find out how to get the latest files get the date and time stamp out of it. Files are PQR123.PLL.M989898.201308012254.gpg... (1 Reply)
Discussion started by: rudoraj
1 Replies

4. UNIX for Dummies Questions & Answers

Find the latest file on remote sftp

Hi All, I need your help in finding the latest files in remote sftp and get those files to local server and process them. Please let me know I appreciate your valuable inputs. Thanks raj (7 Replies)
Discussion started by: rajeevm
7 Replies

5. Shell Programming and Scripting

How to find the latest file on Unix or Linux (recursive)

Hi all, I need to get the latest file. I have found this command "ls -lrt" that is great but not recursive. Can anyone help? Thanx by advance. (7 Replies)
Discussion started by: 1or2is3
7 Replies

6. Shell Programming and Scripting

How to find the latest modified file from the unix server.

hi Friends, In my directory i have some files. I need to find out latest modified file. Please help me. Sreenu. (2 Replies)
Discussion started by: sreenu80
2 Replies

7. Red Hat

To find the LATEST file from a dir on REMOTE machine and SCP to local machine?

Hi All, URGENT - Please help me form a scipt for this: I need the LATEST file from a dir on REMOTE machine to be SCP'd to a dir on local machine. (and I need to execute this from local server) I know that the below cmd is used to find the LATEST file from a dir. But this command is not... (3 Replies)
Discussion started by: me_ub
3 Replies

8. Shell Programming and Scripting

how to use find command to get latest file

Is there a way to use find command to get the latest file and cp it into a certain dir at the same try. example find the latest file and cp to a diff dir. (5 Replies)
Discussion started by: shehzad_m
5 Replies

9. UNIX for Dummies Questions & Answers

How to find the latest file on Unix or Linux

Please help me out how to identify the latest file in one directory by looking at file's timestamp or datestamp. You can say using system command. Thanks (10 Replies)
Discussion started by: duke0001
10 Replies

10. AIX

Unix shell scripting to find latest file having timestamp embedded...

Hi guys, I have a directory in UNIX having files with the below format, i need to pickup the latest file having recent timestamp embedded on it, then need to rename it to a standard file name. Below is the file format: filename_yyyymmdd.csv, i need to pick the latest and move it with the... (2 Replies)
Discussion started by: kaushik25
2 Replies
Login or Register to Ask a Question