Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

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 need to get the folder contents in one command line, right now if I do stat or ls, it tells me file type is Symbolic Link but it doesn't tell me if it's a file or a folder.

I'm using this;

stat -c '{"name": "%n", "size": "%s", "perms":"%a","type":"%F","user":"%U", "dereference","%N"}' /*;

Important point is, i need a one liner and very speedy output. I couldn't get around this doing ls, maybe there is a solution using find, locate etc. Or if u know how to read from mlocatedb ?


share|improve this question
up vote 1 down vote accepted

Try this which adds another field:

stat -c '{L"name": "%n", "size": "%s", "perms":"%a","type":"%F","user":"%U", "dereference":"%N"}' /* | 
    sed '/\/\o47\"\}$/ {s/\}/,\"dir\":\"yes\"\}/;b}; s/\}$/,\"dir\":\"no\"\}/'

By the way, I changed the comma after "dereference" to a colon.

share|improve this answer

ls -l will show you the target of a link. Is that what you need? Another option is readlink <file>.

Oops, sorry, didn't read everything there. How about ls -lL. The -L tells ls to dereference the link, so you'll see the target there instead of the link.

share|improve this answer

stat also knows the option -L to dereference symlinks. Try your calls with this parameter.

share|improve this answer
Is that anything like "defenestrating"? – Dennis Williamson Jan 11 '10 at 19:57
Sorry. I've taken a look at a dictionary. I'm not a native english speaker. – Christian Jan 11 '10 at 20:27
Sorry, just kidding around. – Dennis Williamson Jan 13 '10 at 4:37

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.