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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to find the latest file on Unix or Linux (recursive)
# 1  
Old 02-27-2011
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.
# 2  
Old 02-27-2011
# 3  
Old 02-27-2011
Could you please be more explicit, how do I get the sorting by date?
# 4  
Old 02-27-2011
This will give you the latest file under $basedir, recursively :
Code:
while read F; do stat "$F" -c'%Y %n'; done < <(find "$basedir" -mtime 1)|sort|cut -d' ' -f2-|tail -1

Note that it will work only for files modified in the last 24 hours, you can change the mtime parameter to higher if needed.
Maybe there's a simpler way...
# 5  
Old 02-27-2011
I have finally found. The following command find the latest file, including the handling of filename with spaces.

find . -type f -printf %p";" | xargs -d ";" ls -t | head -1
# 6  
Old 02-27-2011
Quote:
Originally Posted by 1or2is3
I have finally found. The following command find the latest file, including the handling of filename with spaces.

find . -type f -printf %p";" | xargs -d ";" ls -t | head -1
So long as xargs only invokes ls once.


---------- Post updated at 05:43 PM ---------- Previous update was at 05:36 PM ----------

Quote:
Originally Posted by frans
Code:
while read F; do stat "$F" -c'%Y %n'; done < <(find "$basedir" -mtime 1)|sort|cut -d' ' -f2-|tail -1

I don't think there's any need for that while loop. You should be able to get it done using find's exec primary.
Code:
find "$basedir" -mtime 1 -exec stat -c '%Y %n' {} + | sort ....

Save yourself a few calls to stat as well.

Also, if you reverse the sort order, you can use head and finish faster (no need to pipe everything through cut and tail).

Regards,
Alister
# 7  
Old 02-27-2011
Quote:
Originally Posted by alister
I don't think there's any need for that while loop. You should be able to get it done using find's exec primary.
Code:
find "$basedir" -mtime 1 -exec stat -c '%Y %n' {} + | sort ....

Save yourself a few calls to stat as well.
Regards,
Alister
Thanks for that. I'll have to study better the specific syntax of find, i read some things about but didn't have the need of them. That's why i proposed such a dirty solution. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To Find Duplicate files using latest in Linux

I have tried the following code and with that i couldnt achieve what i want. #!/usr/bin/bash find ./ -type f \( -iname "*.xml" \) | sort -n > fileList sed -i '/\.\/fileList/d' fileList NAMEOFTHISFILE=$(echo $0|sed -e 's/\/()$*.^|/\\&/g') sed -i "/$NAMEOFTHISFILE/d"... (2 Replies)
Discussion started by: gold2k8
2 Replies

2. UNIX for Dummies Questions & Answers

Recursive Find on file size

Is there a way to use the find command to recursively scan directories for files greater than 1Gb in size and print out the directory path and file name only? Thanks in advance. (6 Replies)
Discussion started by: jimbojames
6 Replies

3. Shell Programming and Scripting

Recursive find / grep within a file / count of a string

Hi All, This is the first time I have posted to this forum so please bear with me. Thanks also advance for any help or guidance. For a project I need to do the following. 1. There are multiple files in multiple locations so I need to find them and the location. So I had planned to use... (9 Replies)
Discussion started by: Charlie6742
9 Replies

4. 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

5. 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

6. 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

7. 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

8. Shell Programming and Scripting

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... (4 Replies)
Discussion started by: hyennah
4 Replies

9. UNIX for Advanced & Expert Users

find file with date and recursive search for a text

Hey Guyz I have a requirement something like this.. a part of file name, date of modification of that file and a text is entered as input. like Date : 080206 (MMDDYY format.) filename : hotel_rates text : Jim now the file hotel_rates.ZZZ.123 (creation date is Aug 02 2006) should be... (10 Replies)
Discussion started by: rosh0623
10 Replies

10. UNIX for Advanced & Expert Users

Performing a non-recursive find in Unix

I need to perform a non-recursive find in Unix. Sounds simple, but it doesn't actually work. The command ALWAYS searches through the subdirectories. Any ideas? I am on DEC Unix :-( (3 Replies)
Discussion started by: christallott
3 Replies
Login or Register to Ask a Question