How to ls and know the target of symbolic links in one command line?
Solution 1
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.
Solution 2
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.
Solution 3
stat
also knows the option -L
to dereference symlinks. Try your calls with this parameter.
Related videos on Youtube
Ryan
Updated on September 17, 2022Comments
-
Ryan almost 2 years
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 ?
Thanks,
-
Dennis Williamson over 14 yearsIs that anything like "defenestrating"?
-
user2987902 over 14 yearsSorry. I've taken a look at a dictionary. I'm not a native english speaker.
-
Dennis Williamson over 14 yearsSorry, just kidding around.