What does the second column in the output of 'ls -n' mean?

When I run:

ls -n

I get something like:

-rwxrwxrwx  1 1000 1000   765528 2009-10-15 18:41 file1
drwxr-xr-x 10 1000 1000     4096 2010-12-07 20:50 dir1
drwxr-xr-x  3 1000 1000     4096 2010-10-24 16:57 dir2

What does the second column (the number) mean?


Solution 1:

The second column is the number of hard links to the file. For a directory, the number of hard links is the number of immediate subdirectories it has plus its parent directory and itself.

$ ls -n
total 0
$ touch f1
$ touch f2
$ ln f1 hardlink
$ ln -s f2 softlink
$ mkdir d1
$ mkdir d2
$ mkdir d2/a d2/b d2/c
$ ls -n
total 8
drwxr-xr-x 2 1000 1000 4096 2010-12-31 00:07 d1
drwxr-xr-x 5 1000 1000 4096 2010-12-31 00:07 d2
-rw-r--r-- 2 1000 1000    0 2010-12-31 00:06 f1
-rw-r--r-- 1 1000 1000    0 2010-12-31 00:06 f2
-rw-r--r-- 2 1000 1000    0 2010-12-31 00:06 hardlink
lrwxrwxrwx 1 1000 1000    2 2010-12-31 00:07 softlink -> f2

Linux Gazette Issue 35

Linux Gazette Issue 93

Solution 2:

karthick@Ubuntu-desktop:~$ ls -n
drwxr-xr-x  2 1000 1000  4096 2010-12-02 15:56 Books

First Column: drwxr-xr-x

  • It shows file permission.

Second Column: 2

  • It shows the hard link count to that file/directory.

Third nd Fourth Column: 1000 1000

  • It shows UID and GID of the user.

Fifth column: 4096

  • It shows the size.

Sixth column: 2010-12-02 15:56

  • It shows last modified date and time.

Seventh column: Books

  • It shows name of the file/directory.

NOTE:

For more information look at this link.

Solution 3:

The answers given regarding directories will give the right number, but for the wrong reasons. The number is not a count of the subdirectories plus "." and ".."

The number is actually the same as for a file: the number of hard links to the directory. For example, let us create a new directory:

someuser@mymachine:~/test$ mkdir temp
someuser@mymachine:~/test$ ls -al
total 24
drwxrwxr-x  3 someuser someuser  4096 2012-02-27 15:58 .
drwx------ 50 someuser someuser 16384 2012-02-27 15:52 ..
drwxrwxr-x  2 someuser someuser  4096 2012-02-27 15:58 temp
someuser@mymachine:~/test$

You can see that the number of links is 2. These links are the name "temp" and the "." directory within temp (aka "temp/.") Not the ".." directory. That is a link to the parent of "temp". Which kind of explains why creating a sub-directory creates a new link. Let's do it:

someuser@mymachine:~/test$ cd temp
someuser@mymachine:~/test/temp$ mkdir subtemp
someuser@mymachine:~/test/temp$ ls -al
total 12
drwxrwxr-x 3 someuser someuser 4096 2012-02-27 16:03 .
drwxrwxr-x 3 someuser someuser 4096 2012-02-27 15:58 ..
drwxrwxr-x 2 someuser someuser 4096 2012-02-27 16:03 subtemp
someuser@mymachine:~/test/temp$

There are now 3 links to the directory. They are "temp", "temp/." and "subtemp/.." (that is, the ".." directory within "subtemp"). So that's why subdirectories add a link - because they all have a ".." directory referring to the parent.

Solution 4:

This field specifies the number of links or directories inside this directory.

For example:

aneesh@aneesh-VirtualBox:~$ ls -n 
total 146500
drwxr-xr-x  6 1000 1000      4096 2010-12-30 11:27 Desktop
drwxr-xr-x 10 1000 1000      4096 2010-12-30 16:20 Documents
drwxr-xr-x  7 1000 1000      4096 2010-12-30 17:46 Downloads
drwxrwsr-x  9 1000 1000      4096 2010-12-28 17:18 eclipse
-rw-r--r--  1 1000 1000 149897197 2010-10-04 15:18 eclipse-php-helios-linux-gtk.tar.gz
-rw-r--r--  1 1000 1000       179 2010-11-26 08:50 examples.desktop
drwxr-xr-x  2 1000 1000      4096 2010-11-26 09:20 Music
drwxr-xr-x  6 1000 1000      4096 2010-12-23 14:59 MyWork
drwxr-xr-x  8 1000 1000      4096 2010-12-23 12:18 new
-rw-r--r--  1 1000 1000     37985 2010-12-18 12:09 output.pdf
drwxr-xr-x  7 1000 1000      4096 2010-12-21 19:35 Pictures
drwxr-xr-x  2 1000 1000      4096 2010-11-26 09:20 Public
drwxrwxrwx  2 1000 1000      4096 2010-12-29 12:47 public_html
-rw-r--r--  1 1000 1000       942 2010-12-30 19:55 rn
drwxr-xr-x 19 1000 1000      4096 2010-07-29 16:37 simplesamlphp
drwxr-xr-x  6 1000 1000      4096 2010-12-14 11:48 SoftMaker
drwxr-xr-x  2 1000 1000      4096 2010-12-28 14:52 Templates
drwxrwxr-x  8 1000 1000      4096 2010-12-03 14:48 Ubuntu One
drwxr-xr-x  4 1000 1000      4096 2010-12-28 10:37 Videos
drwxr-xr-x  3 1000 1000      4096 2010-12-20 19:26 Work

You can see the number of links or directories in the Desktop is 6. Let us check it.

aneesh@aneesh-VirtualBox:~$ ls -la Desktop/
total 72
drwxr-xr-x  6 aneesh aneesh 4096 2010-12-30 11:27 .
drwxr-xr-x 46 aneesh aneesh 4096 2010-12-31 10:22 ..
-rw-r--r--  1 aneesh aneesh   48 2010-11-30 11:50 bugs
drwxr-xr-x  2 aneesh aneesh 4096 2010-12-30 14:49 Bugs
-rw-r--r--  1 aneesh aneesh  793 2010-12-07 12:34 Hello_world.xml
-rw-r--r--  1 aneesh aneesh  440 2010-12-09 20:08 new
drwxr-xr-x  2 aneesh aneesh 4096 2010-12-14 16:00 plugin
drwxr-xr-x  2 aneesh aneesh 4096 2010-12-17 17:32 plugins
drwxr-xr-x  2 aneesh aneesh 4096 2010-12-21 12:35 saml

Here you can see the links and directories inside the desktop are :

  1. '.' # the parent directory

  2. '..' # current directory or present working directory.

  3. 'Bugs'

  4. 'plugin'

  5. 'plugins'

  6. 'saml'

    so total 6. Hope this helps.

check this link for more info. http://www.go2linux.org/command-ls-file-permissions