Advertisement
Tech

Basic Linux Commands: The ln Command

The Linux operating system is one of the most amazingly flexible systems available. One tool that helps to make Linux so flexible is the “ln” command. The “ln” command allows the user to create links from one file to another. This Linux Command Line series entry will show you how to use ln.

By jlwallen
Desk Tech
Reading time 3 min read
Word count 566
Linux Computing Linux commands
Basic Linux Commands: The ln Command
Advertisement
Quick Take

The Linux operating system is one of the most amazingly flexible systems available. One tool that helps to make Linux so flexible is the “ln” command. The “ln” command allows the user to create links from one file to another. This Linux Command Line series entry will show you how to use ln.

On this page

A link is basically a pointer that links two files - one to the other. This gets a bit confusing because one of those endpoints isn’t really a file, it’s a link. For example: You have a file in /data called reports which is a large database that you want all of your users to be able to use. Instead of having to copy that file to each users’ home directory, and then go through the trouble of making sure each user updates the original file when they are finished working, you would create a link from their home directories to the reports file. With each user having a symbolic link to the same file, when they update the file it will be reflected in the original. Of course this can cause problems if more than one user is working on the file at a time and one save can overwrite anothers’ work.

There are two kinds of links: Hard and soft (or sym) links. They are very similar to one another, but the variations make them quite different. Here are the specifications for each:

Advertisement

Hard Link:

  • Is a pointer to a file or program but NOT a directory.
  • If the linked file is moved or destroyed, the link is not broken.
  • Hard links can NOT span from one drive to another.

Soft Link:

Advertisement
  • Is a pointer to a file, program, or directory.
  • If the linked file is moved or destroyed, the link is broken.
  • Soft links CAN span from one drive to another.

Creating links is done with the ln command. Say you want to create a link to the reports database on the /data directory. To create a hard link to this directory, enter the command (from within the directory you want the link to be):

ln /data/reports

Advertisement

Now, let’s suppose that database is on a different drive. For this you need to create a soft link (or symlink) like so:

ln -s /data/reports

Advertisement

Remove links with the standard Linux rm command like:

rm ~/reports

Advertisement

The above command would remove only the link created in your home directory. Any time you use that file, when you save data, the saved data would be immediately reflected in the original file that you linked to.

Final Thoughts

Although they seem complex, links are actually quite easy to use. The most complex issue is knowing when to use what type of link. Once you have that mastered, you’ll be using links like a pro.

Advertisement

This post is part of the series: Linux Command Line

If you ever plan on doing any administration on a Linux machine, you would be well served to get to know the command line interface. In this Bright Hub series you will be introduced to various concepts surrounding one of the most powerful admin tools around.

  1. Linux Command Line: Introduction
  2. Linux Command Line: ls
  3. Linux Command Line: cd
  4. Linux Command Line: mkdir
  5. Linux Command Line: df
  6. Linux Command Line: ln
  7. Linux Command Line: top
  8. Linux Command Line: mount/umount
  9. Linux Command Line: Cron/Crontab
  10. Linux Command Line: chmod
  11. Linux Command Line: wget
  12. Linux Command Line: cat
  13. Linux Command Line: grep
  14. Linux Command Line: dd
  15. Linux Command Line: sudo
  16. Linux Command Line: startx
  17. Linux Command Line: adduser
  18. Linux Command Line: at
  19. Linux Command Line: aterm
  20. Linux Command Line: nano
  21. Linux Command Line: hostname
Keep Exploring

More from Tech

Filed under
Linux Computing
More topics
Linux commands
Advertisement