How can I tell if a directory from "ls" is a symlink?

Don P picture Don P · Feb 27, 2013 · Viewed 35.6k times · Source

I am using Mac OS X terminal. How can I tell if a directory returned by "ls" is a symlink or the actual directory? If it is a symlink, how can I inspect where it is linking to, or modify it?

I actually tried to research this one a fair amount, but everything I have found is about creating symlinks. The closest I've come is being able to set colors for several things in my terminal. I'm assuming there is an actual command for getting info about a directory or file.

Answer

R. S. picture R. S. · Feb 27, 2013

Use ls -l

Example output:

-rwxr-xr-x 1 foo staff  642 Nov 22  2010 getCactiImages.sh
lrwxr-xr-x 1 foo staff   36 Aug 29 15:29 imgopt -> ../Projects/imgopt/imgopt

imgopt is a symlink, getCactiImages.sh is a normal file

You can also use stat filename

Example:

  File: ‘imgopt’ -> ‘../Projects/imgopt/imgopt’
  Size: 36          Blocks: 8          IO Block: 4096   symbolic link
Device: 1000005h/16777221d  Inode: 7743835     Links: 1
Access: (0755/lrwxr-xr-x)  Uid: (  501/  foo)   Gid: (   20/   staff)
Access: 2012-08-29 15:29:19.000000000 -0700
Modify: 2012-08-29 15:29:19.000000000 -0700
Change: 2012-08-29 15:29:19.000000000 -0700
 Birth: 2012-08-29 15:29:19.000000000 -0700