Don P
Don P

Reputation: 63557

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

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.

Upvotes: 27

Views: 62411

Answers (3)

user667618
user667618

Reputation:

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

Upvotes: 42

GoZoner
GoZoner

Reputation: 70135

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'

Upvotes: 1

prodigitalson
prodigitalson

Reputation: 60413

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

Upvotes: 11

Related Questions