A Shortcut for Creating Shortcuts

February 14th, 2008 by Brian Jones in

Your rating: None Average: 3 (2 votes)

If you come from the world of Windows, you undoubtedly understand the concept of a shortcut. In the Linux world, shortcuts do exist, but they're generally referred to as symbolic links, or symlinks. They are so named because, like shortcuts, a symlink is really just a symbolic placeholder or link to the file or directory you're trying to get at.

Of course, the world of pretty graphics and windows provides ways of creating symlinks. However, for the impatient, the command line allows you to do the job with less clicking around. Let's have a look at an example.

Suppose I'm working on a Web site, and I want all of the Web site files to be located in /home/jonesy/public_html/websites/testing/site1. I need to have quick access to this directory on a pretty regular basis, so it would be nice to have a shortcut on my desktop so I can get to it in a single click. It also would be nice to be able to drag files to the folder without having to browse to it first.

In this scenario, we call /home/jonesy/public_html/websites/testing/site1 the source directory, and I create that directory using the mkdir command. Follow along at home:

mkdir -p /home/jonesy/public_html/websites/testing/site1

Remember to change jonesy to your own login name.

Again, we've just created the source directory. The mkdir command creates a directory anywhere you have permission to do so. The -p option tells mkdir to create any parent directories along the way that don't already exist.

We call the symlink itself the target, and it points to the source we just created. Note that we can call the target whatever we want. In this case, I just call it site1. To make a link that shows up on my desktop, I open up Konsole and run the following command:

@cx:ln -s /home/jonesy/public_html/websites/testing/site1<\n>/home/jonesy/Desktop/site1

Again, remember to change jonesy in the above command to your own login name.

The ln command can make other types of links besides symbolic links, so it's important to remember to feed it the -s option to let it know that you want to create a symbolic link. Though it happens, it is relatively rare to use the ln command without the -s option, even for hard-core geeks.

For Aspiring Geeks
If you forget the -s option, you'll create what's called a hard link. Though the differences are subtle, they are significant. Depending on the location of the link in relationship to the source, you can generate an error, because hard links cannot cross drive partition boundaries. In the guts of the system, the plain facts are that a hard link is actually just another alternative name for the same bunch of data stored somewhere on the disk (in technical terms, the hard link and the original file would point to the same inode).

But Wait! There's More!

Of course, making a link to a particular file is exactly like making a link to a directory. So, if I want to make a link to my favorite photo (/home/jonesy/Photos/mypic.jpg) on my desktop, I can do it like this:

ln -s /home/jonesy/Photos/mypic.jpg /home/jonesy/Desktop/

I threw in a little trick in the above command. Because I didn<\#213>t want the symlink to have a different name from the file it points to, I simply use a . (period), which is shorthand for saying, don't change the name.

For more information about the ln command, try running

man ln

, which is the manual or man page for the ln command.

About the Author

Brian Jones is a system/network/database administrator and sometime Web developer for the Computer Science Department at Princeton University. He is also a freelance writer and editor, spending most of his freelance time writing about technology for various Web and print publications. In his free time, he enjoys brewing beer, home recording and playing billiards.
__________________________


Special Magazine Offer -- Free Gift with Subscription
Receive a free digital copy of Linux Journal's System Administration Special Edition as well as instant online access to current and past issues. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Neb's picture

A Shortcut for Creating Shortcuts

On August 7th, 2009 Neb (not verified) says:

Why not just press and hold Ctrl+Shift keys together while draging a file or a folder to your Desktop.? It will creat a shortcut on the desktop in the same image as the original file and/or folder.
Cheers!
Neb

Anonymous's picture

I found this guide on

On June 4th, 2009 Anonymous (not verified) says:

I found this guide on shortcuts/symbolic links really useful. OK some of the formatting may be a bit confusing
but if you have any experience with Linux at all it's fine. I have to use Linux more and more for my job and I must admit I feel like I've got 1 hand tied behind my back when I use linux as I have 10 years+ experience with windows. It's frustrating when you know what you want to do but don't know how! Good work :)

ciotog's picture

minor article issues

On February 23rd, 2008 ciotog (not verified) says:

Nice, quick introduction to symlinks for beginners. However, I noticed a couple of minor issues.

1. Why did you need to open Konsole to run the first ln command when presumably you already had it open to run the mkdir command?

2. I would also wager there are some formatting issues with the first ls command:

@cx:ln -s /home/jonesy/public_html/websites/testing/site1<\n>/home/jonesy/Desktop/site1

doesn't look quite right (the @cx: at the start ought to be removed and the <\n> in the middle ought to be replaced with a space).

3. Besides the . in the jpeg filename, I don't see the . you're referring to in the explanation of the second ln command.

4. "didn<\#213>t" should probably be "didn't"

Federico Jara's picture

Oh, no, please, no

On February 21st, 2008 Federico Jara (not verified) says:

First it was renaming "directories" to "folders" and nowadays noone knows what a directory is.

And now symlinks to shortcuts?

Noooooooooo!

Post new comment

Please note that comments may not appear immediately, so there is no need to repost your comment.
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.

More information about formatting options

Newsletter

Each week Linux Journal editors will tell you what's hot in the world of Linux. You will receive late breaking news, technical tips and tricks, and links to in-depth stories featured on www.linuxjournal.com.
Sign up for our Email Newsletter

Tech Tip Videos

From the Magazine

December 2009, #188

If last month's Infrastrucuture issue was too "big" for you then try on this month's Embedded issue. Find out how to use Player for programming mobile robots, build a humidity controller for your root cellar, find out how to reduce the boot time of your embedded system, and if you're new to embedded systems find out the basics that go into one. You can also read about the Beagle Board, the Mesh Potato and a spate of other interestingly named items. And along with our regular columns don't miss our new monthly column: Economy Size Geek.







Read this issue