≡ Menu

symbolic link

Can you completely explain the nine permissions bits on UNIX or Linux files?
[click to continue…]

How do I find out the canonicalised absolute pathname for a given command or file under Linux operating systems?
[click to continue…]

My programs and scripts needs a real path and not a a symbolic link. How to I determine a real path of any directory under Linux / UNIX like operating systems? How do I remove references to /./, /../ and extra '/' character in path?
[click to continue…]

Unix Create a Symbolic Link

How do I create a symbolic links under Linux or Unix like operating systems using command line options?
[click to continue…]

UNIX / Linux Find File Owner Name

Q. How do I find out the name of file / directory owner under UNIX / Linux operating systems?
[click to continue…]

Q. I need to find file permission and store the same to a shell variable. How do I find out the file permission without parsing ls -l output?

A. Use GNU stat command to display file or file system status. It has option to display output in specific format.

Display stat for /etc/passwd file

Type the following command:
$ stat /etc/passwd

  File: `/etc/passwd'
  Size: 1675            Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 7899368     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2007-12-05 08:20:31.000000000 +0530
Modify: 2007-12-04 23:36:50.000000000 +0530
Change: 2007-12-04 23:36:50.000000000 +0530

Print access rights in octal format:
$ stat -c %a /etc/passwd


Print access rights in human readable format, enter:
$ stat -c %A /etc/passwd


Store access rights in octal format to a shell variable:
$ VAR=$(stat -c %a /etc/passwd)
$ echo $VAR

Other valid format sequences for files

  • %b : Number of blocks allocated (see %B)
  • %B : The size in bytes of each block reported
  • %d : Device number in decimal
  • %C : SELinux security context
  • %D : Device number in hex
  • %f : Raw mode in hex
  • %F : File type
  • %g : Group ID of owner
  • %G : Group name of owner
  • %h : Number of hard links
  • %i : Inode number
  • %n : File name
  • %N : Quoted file name with dereference if symbolic link
  • %o : I/O block size
  • %s : Total size, in bytes
  • %t : Major device type in hex
  • %T : Minor device type in hex
  • %u : User ID of owner
  • %U : User name of owner
  • %x : Time of last access
  • %X : Time of last access as seconds since Epoch
  • %y : Time of last modification
  • %Y : Time of last modification as seconds since Epoch
  • %z : Time of last change
  • %Z : Time of last change as seconds since Epoch

Q. I’m new to Linux and how do I examine filesystem and identify regular files or directories?

A. Both Linux and UNIX comes with ls command for examining the filesystem. You can use ls command to look at the filesystem. ls command can display:
=> Character devices
=> Regular files
=> Sym links (symbolic links)
=> Directories
=> Pipes
=> Sockets
=> Block devices

ls command examples

Display /etc directory files, enter:
$ ls /etc
When invoked without any arguments, ls lists the files in the current working directory:
$ ls
Use -l (long option) to lists filenames, sizes, permissions, type and all other information:
$ ls /etc/passwd

-rw-r--r-- 1 root root 2453 Jul 17 16:25 /etc/passwd

See Linux / UNIX file permissions for more information


A directory is marked with a d as the first letter of the permissions field:
ls -ld /etc

drwxr-xr-x 88 root root 12288 Aug  5 23:46 /etc

Symbolic link

A symbolic link is marked with an l (lower case L) as the first letter of the permissions string:
ls -l /bin/nisdomainname

lrwxrwxrwx 1 root root 8 Jul 10 08:50 /bin/nisdomainname -> hostname


  • A named pipe is marked with a p as the first letter of the permissions string.
  • A socket is marked with a s as the first letter of the permissions string.
  • A character device is marked with a c as the first letter of the permissions strings. (ls -l /dev/console)
  • A block device is marked with a b (ls -l /dev/sdb1).