What if you could update one file and have all copies update themselves instantly?
Why ln (hard and symbolic links) in Linux CLI? - Purpose & Use Cases
Imagine you have multiple copies of the same file scattered across different folders on your computer. Every time you update one copy, you have to remember to update all the others manually.
This manual copying wastes disk space and is easy to forget. If you miss updating one copy, your files become inconsistent, causing confusion and errors.
The ln command creates links--either hard or symbolic--that act like shortcuts or mirrors to your original file. This way, you can access or update the file from multiple places without duplicating it.
cp /folder1/file.txt /folder2/file.txt
# Update both files separatelyln -s /folder1/file.txt /folder2/file.txt
# Both point to the same fileYou can manage files efficiently, save disk space, and keep your data consistent across your system effortlessly.
Developers often use symbolic links to point to shared libraries or configuration files, so updating one file updates all linked references instantly.
Manual copying wastes space and risks inconsistency.
ln creates links that act like file shortcuts or mirrors.
Links save space and keep files synchronized automatically.
Practice
Solution
Step 1: Understand hard link behavior
Hard links share the same inode number and point directly to the file data, making them indistinguishable from the original file.Step 2: Understand symbolic link behavior
Symbolic links are special files that contain a path to another file or directory, acting like shortcuts pointing to file names.Final Answer:
A hard link points directly to the file's data, sharing the inode; a symbolic link points to the file name. -> Option CQuick Check:
Hard link = inode sharing, Symbolic link = filename pointer [OK]
- Confusing which link shares inode
- Thinking symbolic links share file data
- Mixing up commands for creating links
linkfile pointing to originalfile?Solution
Step 1: Recall symbolic link syntax
The syntax for creating a symbolic link isln -s <target> <link_name>.Step 2: Match command to syntax
ln -s originalfile linkfile usesln -s originalfile linkfile, which correctly creates a symbolic link namedlinkfilepointing tooriginalfile.Final Answer:
ln -s originalfile linkfile -> Option AQuick Check:
ln -s target link_name [OK]
- Swapping target and link name order
- Omitting -s for symbolic links
- Using ln -s with wrong argument order
echo "Hello" > file1 ln file1 file2 ln -s file1 file3 rm file1
What will be the output of
cat file2 and cat file3?Solution
Step 1: Understand hard link behavior after deleting original
Hard linkfile2points to the same inode asfile1. Removingfile1does not delete the data becausefile2still references it. Socat file2outputs "Hello".Step 2: Understand symbolic link behavior after deleting original
Symbolic linkfile3points to the namefile1. After deletingfile1,file3points to a non-existent file, socat file3gives an error.Final Answer:
file2: Hello
file3: cat: file3: No such file or directory -> Option DQuick Check:
Hard link survives deletion; symbolic link breaks [OK]
- Assuming symbolic link still works after target deletion
- Thinking hard link deletes data with original
- Confusing link types' behavior on file removal
ln -s /path/to/file linkname but get an error: ln: failed to create symbolic link 'linkname': File exists. What is the best way to fix this?Solution
Step 1: Understand the error cause
The error occurs becauselinknamealready exists, andlnrefuses to overwrite existing files or links by default.Step 2: Use force option to overwrite
Usingln -sfforces the symbolic link creation by overwriting the existinglinknamesafely.Final Answer:
Use ln -sf /path/to/file linkname to force overwrite the existing link. -> Option BQuick Check:
ln -sf overwrites existing links safely [OK]
- Deleting the target file instead of the link
- Omitting -s and creating hard link by mistake
- Renaming target unnecessarily
Solution
Step 1: Identify storage-saving method
Hard links share the same inode and file data, so multiple filenames point to the same data without duplicating storage.Step 2: Compare with symbolic links and copies
Symbolic links only point to filenames and do not save storage if the original is deleted. Copying duplicates data, using more space.Final Answer:
Use ln to create hard links because they share the same inode and save space. -> Option AQuick Check:
Hard links save space by sharing inode [OK]
- Choosing symbolic links for storage saving
- Copying files instead of linking
- Ignoring inode sharing concept
Ready to prove it?
Pass the test and this pattern moves unknown
