25

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.

Don P
  • 60,113
  • 114
  • 300
  • 432

3 Answers3

37

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
R. S.
  • 1,505
  • 13
  • 19
9

ls -al will tell you. Symlinks will be noted like: target -> source

prodigitalson
  • 60,050
  • 10
  • 100
  • 114
1

With the 'ls -F' command, the file name will have '@' as the suffix. To see the link use 'ls -l'. You may find it convenient to define

alias ls='ls -F'
alias ll='ls -l'
GoZoner
  • 67,920
  • 20
  • 95
  • 145