Skip to main content

What is Symlinks and how to use it

When working with files and directories, you may have heard of symbolic links (often called symlinks). They are widely used in Linux, macOS, and even Windows (via WSL or shortcuts) to make file management smarter and more efficient.

In this guide, we’ll cover:

  1. What is a Symlink?

  2. Why Do We Need Symlinks?

  3. Practical Scenarios Where Symlinks Are Useful

  4. How to Create a Symlink (with macOS Example)

  5. Tips and Best Practices


1. What is a Symlink?

A symbolic link (or symlink) is a type of file that points to another file or directory, much like a shortcut.

  • On Linux/macOS, they’re created via the ln -s command.

  • On Windows, you can create them using mklink.

Unlike copying a file, a symlink doesn’t duplicate data. Instead, it tells the operating system, “when someone opens me, go to that original file.”

So, in short, A symlink is nothing but a path pointer to another file/folder.


2. Why Do We Need Symlinks?

Symlinks exist because sometimes you want files or folders to be accessible in multiple places without duplication. Benefits include:

  • Save storage space by avoiding duplicate copies.

  • Keep consistency: update the original file once, and every symlink reflects it.

  • Flexibility in file paths: if software expects files in a certain directory, you can “redirect” that path.

  • Organization: make large or shared resources accessible without moving them.


3. Real-Life Scenarios for Symlinks

Here are a few examples that show how symlinks help in everyday workflows:

A. Shared Resources in Projects

Instead of copying common assets (like images or scripts) into multiple project folders, you create symlinks pointing to a master folder.

B. Configuration Files

Developers often keep dotfiles (.zshrc, .gitconfig) in a GitHub repo or cloud drive. With symlinks, they can place those files in their home directory without duplication.

C. Storage Management

Move heavy folders (like Videos or Downloads or LLM files) to an external drive but create symlinks in your home folder so apps still think the files are “local.”

D. Backward Compatibility

If you rename or reorganize a folder, you can create a symlink from the old path to the new one so older scripts/programs still work.


4. How to Create a Symlink (Example on macOS/Linux)

Creating a symlink is simple in macOS/Linux using the Terminal:

Syntax

ln -s [source] [destination]
  • source → the original file or directory

  • destination → the symlink you want to create

Example

You have a folder:

  • /Users/mukitulislam/MyFolder

You want a symlink to it to an external SSD folder, so hit this command:

  • ln -s /Users/mukitulislam/MyFolder ~/Volumes/T7/MUKITUL-WORKSPACE/MyExternalFolder

In this way, you can symlink MyExternalFolder on an external SSD to behave like the real folder.


5. Best Practices

  • Verify symlinks: Use ls -l to see where a symlink points.

  • Delete safely: Removing a symlink with rm does not delete the original file.

  • Avoid loops: Don’t point symlinks back to themselves—it can break scripts or cause errors.


Conclusion

Symlinks are a universal concept across Linux, macOS, and Windows. It provides a powerful way to simplify file organization, save space, and make workflows more flexible.

If you’re on macOS or Linux, try creating one using the ln -s command today. If you’re on Windows, check out the mklink command in Command Prompt or PowerShell.

Comments

Popular posts from this blog

Part 1: Connecting AI to My Daily Tools – A Simple MCP-Powered TODO App

Imagine asking an AI to manage your TODO list, run a local script, or update a file - it does exactly that, like a virtual assistant plugged into your computer. This is now possible thanks to something called MCP ( Model Context Protocol ).  What is MCP?   MCP (Model Context Protocol) is a lightweight protocol proposed by Anthropic that enables AI models to interact with tools in a structured and transparent manner. It lets you define tools in an AI-readable format — including their names, parameters, descriptions, and return types — so that LLMs like Claude, GPT (and others) can understand and call them safely. With MCP, you can turn your scripts, utilities, and services into AI-callable tools, effectively giving the model "extensions" into your local environment or applications.  Image Source: fb.com/devtalks My First Experiment: A TODO List MCP Server   To explore MCP in action, I created a simple MCP server that exposes two tools:   đŸ“ addTodo(day,...

How to create PuTTY shortcut in Windows to establish connection to Linux server? | Step by step guide is here!

PuTTY is open-source software and an SSH and telnet client for Windows. PuTTY helps to establish an SSH connection from a Windows machine to a Linux server. However it is not limited to this feature only, it has loads of other features.  This article will guide us in creating a PutTTY shortcut for windows. This is a 7-step procedure and step 6 is very important! Step 1: Download  the MSI file and install PuTTY on your Windows machine. Step 2: Go to your PuTTY folder. It is usually located in  C:\Program Files\PuTTY  or  C:\Program Files(x86)\PuTTY Fig: image_1 Step 3: Create a shortcut of putty.exe - the shortcut will be created in the desktop folder. Fig: image_2 Step 4: Navigate to your desktop folder and you will find the shortcut named  putty.exe - Shortcut Fig: image_3 Step 5: Right-click on the  putty.exe - Shortcut and then click properties - properties window will open, like the images shown below (image_4 and image_5)-    Fig...

Double (==) equal and Triple (===) equal sign - how it works on JavaScript | a brief explanation!

 In JavaScript, we may come across double equal (==) and triple equal (===) sign while checking the equality of two variables' values. But why two different operators are there for the same operation of equality check? What do they actually mean? You will find the answers in this blog. 1. How  ==  ( double equal ) works Double equal does the loose equality check. It checks the value equality only. It converts the type of the variables to match each other. Some common examples of double equal (==) check of two variables x and y are given below in tabular form - x y x==y undefined undefined / null true undefined true / false / NaN / 0 / 17 / 'string' false null true / false / NaN / 0 / 12 / 'string' false null null / undefined true NaN any-value false new String("mukitul") "mukitul" true {...