Symbolic links, also known as symlinks, are special files that point to files or directories in other locations on your system. You can think of them like advanced aliases and here’s how to use them in MacOS.
Symbolic links are similar to aliases, except they work in every application on your Mac—including in the Terminal. They’re particularly useful when apps don’t want to work correctly with a regular alias. On macOS, you create symbolic links in the Terminal using the
ln utility. You can’t create them in the Finder. Symbolic links in macOS work similarly to symbolic links in Linux, because both are Unix-like operating systems. Symbolic links in Windows work a bit differently.
What Are Symbolic Links?
In macOS, you can create regular aliases in the Finder. Aliases point at files or folders, but they’re more like simple shortcuts.
A symbolic link is a more advanced type of alias that works in every application on the system, including command-line utilities in the terminal. A symbolic link you create appears to apps to be the same as the original file or folder it’s pointing at—even though it’s just a link.
For example, let’s say you have a program that needs its files stored at /Library/Program. But you want to store those files somewhere else on the system—for example, in /Volumes/Program. You can move the Program directory to /Volumes/Program, and then create a symbolic link at /Library/Program pointing to /Volumes/Program. The program will try to access its folder at /Library/Program, and the operating system will redirect it to /Volumes/Program.
This is entirely transparent to the macOS operating system and the applications you use. If you browse to the /Library/Program directory in the Finder or any other application, it will appear to contain the files inside /Volumes/Program.
In addition to symbolic links, which are sometimes called “soft links”, you can instead create “hard links”. A symbolic or soft link points to a path in the file system. For example, let’s say you have a symbolic—or soft—link from /Users/example pointing to /opt/example. If you move the file at /opt/example, the link at /Users/example will be broken. However, if you create a hard link, it will actually point to the underlying inode on the file system. So, if you created a hard link from /Users/example pointing to /opt/example and later moved /opt/example, the link at /Users/example would still point to the file, no matter where you moved it. The hard link works at a lower level.
You should generally use standard symbolic links (soft links), if you’re not sure which to use. Hard links have some limitations. For example, you can’t create a hard link on one partition or disk pointing to a location on another partition or disk, while you can do that with a standard symbolic link.
Create Symbolic Links With the ln Command
To create a symbolic link on a Mac, you’ll need to use the Terminal app.
Press Command+Space, type “Terminal”, and then press “Enter” to open Terminal from Spotlight search. Navigate to Finder > Applications > Utilities > Terminal to launch the Terminal shortcut.
ln command in the following form. You can specify either a path to a directory or file:
ln -s /path/to/original /path/to/link
-s here tells the ln command to create a symbolic link. If you want to create a hard link, you’d omit the
-s. Most of the time symbolic links are the better choice, so don’t create a hard link unless you have a specific reason for doing so.
Here’s an example. Let’s say you wanted to create a symbolic link in your Desktop folder that points to your Downloads folder. You’d run the following command:
ln -s /Users/name/Downloads /Users/name/Desktop
After creating the link, you’d see your Downloads folder appear on your desktop. It’s actually the symbolic link you created, but it will look like the real thing. This folder will appear to contain all the same files as your Downloads folder. That’s because it does—they’re just different views pointing to the same underlying directory on the file system.
If your file path contains spaces or other special characters, you’ll need to enclose it in quotation marks. So, if you wanted to create a link on your desktop to a folder named “My Files” inside your user directory, you’d need something like the following command:
ln -s "/Users/name/My Files" "/Users/name/Desktop/My Link"
To ease typing file and directory paths into the Terminal, you can drag-and-drop a folder from the Finder window into the Terminal and the Terminal will automatically fill in the path to that folder. It will enclose the path in quotation marks if necessary, too.
If you need to create a symbolic link in a system location your user account doesn’t have access to, you’ll need to prefix the
ln command with the
sudo command, like so:
sudo ln -s /path/to/original /path/to/link
Bear in mind that, on modern versions of macOS, you won’t be allowed to write to certain system locations without changing a low-level firmware option due to the System Integrity Protection feature. You can disable that feature, but we recommend that you don’t.
How to Delete Symbolic Links
You can delete symbolic links like you would any other type of file. For example, to delete a symbolic link in Finder, Ctrl+click or right-click it and select “Move to Trash”.
You can delete links from the command line using the
rm command, which is the same command you’d use to remove other files. Run the command and specify the path to the link you want to delete:
How to Create Symbolic Links With a Graphical Tool
The Finder can create aliases, but they won’t work quite like symbolic links. Aliases are just like desktop shortcuts on Windows. They aren’t treated as true, transparent symbolic links.
To be able to create symbolic links in Finder, you’ll need a third-party utility or script. We recommend the open-source app SymbolicLinker for quickly adding a Services > Make Symbolic Link option right to the Finder’s context menu.
Click the option it adds and it will create a symbolic link to the selected file or folder in the current directory. You can rename it and move it wherever you like.
If you haven’t used them before, symbolic links can take a little time to wrap your head around and get used to using. But, once you do, you’ll find them a powerful tool for doing something that you often can’t do with a regular alias.