Bird
Raised Fist0
Linux CLIscripting~20 mins

ln (hard and symbolic links) in Linux CLI - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Link Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of this command sequence?
You create a file and then a hard link to it. What does ls -li show for the inode numbers?
Linux CLI
echo 'hello' > file1
ln file1 file2
ls -li file1 file2
ABoth files have the same inode number.
Bfile1 has an inode number, file2 shows 'No such file or directory'.
CBoth files have inode number 0.
Dfile1 and file2 have different inode numbers.
Attempts:
2 left
💡 Hint
Hard links share the same inode because they point to the same file data.
💻 Command Output
intermediate
2:00remaining
What happens when you delete the original file of a symbolic link?
You create a symbolic link to a file, then delete the original file. What does cat symlink output?
Linux CLI
echo 'data' > original
ln -s original symlink
rm original
cat symlink
Acat: original: No such file or directory
Bdata
CEmpty output
Dcat: symlink: No such file or directory
Attempts:
2 left
💡 Hint
Symbolic links point to a path, not the file content directly.
📝 Syntax
advanced
2:00remaining
Which command correctly creates a symbolic link named link to /usr/bin/python3?
Choose the correct syntax to create a symbolic link named link pointing to /usr/bin/python3.
Aln -s link /usr/bin/python3
Bln link /usr/bin/python3 -s
Cln -s /usr/bin/python3 link
Dln /usr/bin/python3 link -s
Attempts:
2 left
💡 Hint
The syntax is: ln -s target link_name
🚀 Application
advanced
2:00remaining
How to create a hard link to a file on a different filesystem?
You want to create a hard link to a file located on a different mounted filesystem. What will happen if you try?
Linux CLI
ln /mnt/usb/file.txt ./file_link
AThe hard link is created successfully.
BThe command fails with 'Invalid cross-device link' error.
CA symbolic link is created instead automatically.
DThe original file is copied to the new location.
Attempts:
2 left
💡 Hint
Hard links cannot span different filesystems.
🧠 Conceptual
expert
3:00remaining
What is the difference in inode link count after creating a symbolic link vs a hard link?
You have a file with inode link count 1. You create a symbolic link and a hard link to it. What are the inode link counts for the original file after each link creation?
AHard link increases inode link count by 1; symbolic link does not affect inode link count.
BBoth hard and symbolic links increase inode link count by 1.
CSymbolic link increases inode link count by 1; hard link does not affect inode link count.
DNeither hard nor symbolic links affect inode link count.
Attempts:
2 left
💡 Hint
Inode link count counts hard links only.

Practice

(1/5)
1. What is the main difference between a hard link and a symbolic link in Linux?
easy
A. A hard link can only link to directories; a symbolic link can only link to files.
B. A hard link is a shortcut to a directory; a symbolic link is a shortcut to a file.
C. A hard link points directly to the file's data, sharing the inode; a symbolic link points to the file name.
D. A hard link uses ln -s; a symbolic link uses ln.

Solution

  1. 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.
  2. 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.
  3. Final Answer:

    A hard link points directly to the file's data, sharing the inode; a symbolic link points to the file name. -> Option C
  4. Quick Check:

    Hard link = inode sharing, Symbolic link = filename pointer [OK]
Hint: Hard links share inode; symbolic links point to names [OK]
Common Mistakes:
  • Confusing which link shares inode
  • Thinking symbolic links share file data
  • Mixing up commands for creating links
2. Which command correctly creates a symbolic link named linkfile pointing to originalfile?
easy
A. ln -s originalfile linkfile
B. ln linkfile originalfile
C. ln -s linkfile originalfile
D. ln originalfile linkfile

Solution

  1. Step 1: Recall symbolic link syntax

    The syntax for creating a symbolic link is ln -s <target> <link_name>.
  2. Step 2: Match command to syntax

    ln -s originalfile linkfile uses ln -s originalfile linkfile, which correctly creates a symbolic link named linkfile pointing to originalfile.
  3. Final Answer:

    ln -s originalfile linkfile -> Option A
  4. Quick Check:

    ln -s target link_name [OK]
Hint: Use ln -s target link_name for symbolic links [OK]
Common Mistakes:
  • Swapping target and link name order
  • Omitting -s for symbolic links
  • Using ln -s with wrong argument order
3. Given the commands:
echo "Hello" > file1
ln file1 file2
ln -s file1 file3
rm file1

What will be the output of cat file2 and cat file3?
medium
A. file2: Hello
file3: Hello
B. file2: cat: file2: No such file or directory
file3: cat: file3: No such file or directory
C. file2: cat: file2: No such file or directory
file3: Hello
D. file2: Hello
file3: cat: file3: No such file or directory

Solution

  1. Step 1: Understand hard link behavior after deleting original

    Hard link file2 points to the same inode as file1. Removing file1 does not delete the data because file2 still references it. So cat file2 outputs "Hello".
  2. Step 2: Understand symbolic link behavior after deleting original

    Symbolic link file3 points to the name file1. After deleting file1, file3 points to a non-existent file, so cat file3 gives an error.
  3. Final Answer:

    file2: Hello
    file3: cat: file3: No such file or directory
    -> Option D
  4. Quick Check:

    Hard link survives deletion; symbolic link breaks [OK]
Hint: Hard links keep data after original deleted; symbolic links break [OK]
Common Mistakes:
  • Assuming symbolic link still works after target deletion
  • Thinking hard link deletes data with original
  • Confusing link types' behavior on file removal
4. You run the command 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?
medium
A. Delete the target file and rerun the command.
B. Use ln -sf /path/to/file linkname to force overwrite the existing link.
C. Use ln /path/to/file linkname without -s.
D. Rename the target file before creating the link.

Solution

  1. Step 1: Understand the error cause

    The error occurs because linkname already exists, and ln refuses to overwrite existing files or links by default.
  2. Step 2: Use force option to overwrite

    Using ln -sf forces the symbolic link creation by overwriting the existing linkname safely.
  3. Final Answer:

    Use ln -sf /path/to/file linkname to force overwrite the existing link. -> Option B
  4. Quick Check:

    ln -sf overwrites existing links safely [OK]
Hint: Use -sf to force overwrite existing symbolic links [OK]
Common Mistakes:
  • Deleting the target file instead of the link
  • Omitting -s and creating hard link by mistake
  • Renaming target unnecessarily
5. You want to create a backup system where multiple filenames point to the same file data without duplicating storage. Which command and link type should you use, and why?
hard
A. Use ln to create hard links because they share the same inode and save space.
B. Use ln -s to create symbolic links because they are easier to manage.
C. Copy the file multiple times to ensure backups are independent.
D. Use ln -s with absolute paths to avoid broken links.

Solution

  1. 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.
  2. 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.
  3. Final Answer:

    Use ln to create hard links because they share the same inode and save space. -> Option A
  4. Quick Check:

    Hard links save space by sharing inode [OK]
Hint: Hard links share data, saving space for backups [OK]
Common Mistakes:
  • Choosing symbolic links for storage saving
  • Copying files instead of linking
  • Ignoring inode sharing concept
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard