3

I'm looking for a single command to list all files recursively from a given directory along with its modified time. It would also be nice if it can produce output in a tree-like format as produced by tree command.

NOTE: I'm running Red Hat Enterprise Linux Server release 5.

EDIT: The option -D of tree command prints only the date part of the last modification time for past years, though it display date with time for current year. Here, in this case, I'm expecting to print date with time for past years as well.

  • You want to show in seconds? – quanta Oct 10 '11 at 9:21
  • @quanta: In my case, precision upto minutes is enough. – Gnanam Oct 10 '11 at 9:35
7

I'm looking for a single command to list all files recursively from a given directory along with its modified time.

$ find /path/to/folder -type f -print0 | xargs -0 ls -l --time-style="+%F %T"

It would also be nice if it can produce output in a tree-like format as produced by tree command. In my case, precision upto minutes is enough.

On my CentOS, Gentoo, ... -D option is already showed in minutes:

$ tree -D
.
├── [Jul 26 14:41]  LICENSE
├── [Jul 26 14:41]  manifests
│   ├── [Oct 10 16:30]  defines
│   │   └── [Jul 26 14:41]  redis source.pp
│   └── [Jul 26 14:41]  init.pp
├── [Jul 26 14:41]  README
└── [Jul 26 14:41]  templates
    ├── [Jul 26 14:41]  redis.conf.erb
    └── [Jul 26 14:41]  redis-server.erb

3 directories, 6 files
| improve this answer | |
  • Yes, you're right. Just now I'm also discovering that if the modified date is not a current year, then it is showing only date part without timestamp, as Mon dd yyyy. – Gnanam Oct 10 '11 at 9:45
  • Any ideas to make it to display date with time for past years in tree-format style? – Gnanam Oct 10 '11 at 10:26
  • AFAIK, there is no way but edit source code and recompile the tree command. – quanta Oct 10 '11 at 10:35
  • Though there is no complete answer/solution provided here, atleast the syntax find /path/to/folder ... was helpful. Thus accepting this as answer. – Gnanam Oct 12 '11 at 11:55
1

This command lists recursively all files in a given directory with their full modification time:

ls -Rl --time-style=long-iso /path/to/directory

There's no tree-like output in ls but this is pretty close.

| improve this answer | |
0

perhaps this could be a starting point for your solution:

\tree -nf  | awk '{printf $0} {system("stat -c \" [ %y ]\" " $NF )}'| sed -e 's#\([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\).*#\1 ]#g'  2>/dev/null
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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