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.
Your Bash script might need to determine if a file is a symlink or not. In Bash you can test this with the -L operator that returns true if the file exists and is a symlink.
If you are working in a tcsh (often installed as csh on Linux), then if ( -l "$link") should work. The -l operator checks if a file is a symbolic link.
Symlink, also known as a symbolic link in Linux, creates a link to a file or a directory for easier access. To put it in another way, symlinks are links that points to another file or folder in your system, quite similar to the shortcuts in Windows.
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
ls -al
will tell you. Symlinks will be noted like: target -> source
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With