Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to recursively list all files in a given directory, with their full path and their timestamps. Something like this:

10:30 Dec 10 2010 /tmp/mydir/myfile

I've tried with:

find . -type f -exec ls -la {} \;

but that doesn't give me the full path.

share|improve this question
up vote 1 down vote accepted

And another way to do it if your find doesn't support printf

find . -type f | xargs ls -al  | awk -v pwd="$PWD" '{ print $(NF-2), $(NF-1) , pwd substr($(NF), 2)}'  

Note: This only works as long as there aren't any spaces in the filenames. Output looks like this:

2010-09-29 22:08 /home/nifle/ac.txt
2010-10-04 16:02 /home/nifle/
2010-10-05 23:32 /home/nifle/b.txt
2010-12-15 16:49 /home/nifle/barcopy/subbar/ghut
2010-12-15 16:48 /home/nifle/bardir/subbar/ghut
2010-09-29 22:16 /home/nifle/foo.gz
2010-09-29 22:16 /home/nifle/foo1.gz
share|improve this answer
As long as there aren't any spaces in the filenames. – Dennis Williamson Jan 3 '11 at 12:07
@Dennis - Ahh, yes you definitely have a point there. – Nifle Jan 3 '11 at 12:10

Solution 1

Run ls on each file and filter the result:

find "$PWD" -type f -exec ls -la {} \; | cut -d ' ' -f 6-


Jun 14 00:02 /tmp/
Jun 14 20:24 /tmp/  with    multiple   spaces
Jan  2  1972 /tmp/

Solution 2

Use -printf:

find "$PWD" -type f -printf "%t %p\n"


Thu Jun 14 00:02:47.0173429319 2012 /tmp/
Thu Jun 14 20:24:16.0947808489 2012 /tmp/  with    multiple   spaces
Sun Jan  2 03:04:05.0000000000 1972 /tmp/
share|improve this answer
You can replace $PWD with .. – Dennis Williamson Jan 3 '11 at 12:08
@Dennis Williamson: the command from the question already uses . instead of $PWD and it doesn't give him the full path. – Cristian Ciupitu Jan 3 '11 at 21:09
Ah, sorry, you are correct. – Dennis Williamson Jan 3 '11 at 21:23

This question on StackOverflow plays around with one part of your question. In order to get what you want, you could try the following:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.