The Scrap Heap is a wasteland of discarded objects β€” broken swords, empty potion bottles, shattered mirrors. But hidden among the junk are portal mirrors, and learning ln -s lets you build instant teleportation.

🎯 Quest Objectives

�️ Quest Prerequisites

⚑ Command Cheatsheet

Command What It Does
ln -s target link_name Create a symbolic link pointing to target
ls -l Long listing β€” symlinks show link -> target
ls -F Symlinks show with @ marker
readlink link_name Print the target of a symlink
readlink -f link_name Print the fully-resolved absolute path
realpath path Same as readlink -f (more modern)
Property Hard Link Symbolic Link
Points to Inode (data) Path (name)
Works across filesystems No Yes
Target deleted Link still works Broken link (dangling)
ls -F marker none @

πŸ—ΊοΈ Walkthrough

Step 1 β€” Survey the scrap heap

ls -F
# broken_sword  empty_bottle  portal_mirror@  scrap_pile/  crystal_hint

ls -l portal_mirror
# lrwxrwxrwx  1 user group  12 Jan 01  portal_mirror -> /vault/lab

portal_mirror is already a symlink β€” it points to the vault’s lab. You can cd portal_mirror and you will land directly in the lab.

Step 2 β€” Navigate via the existing portal

cd portal_mirror
pwd
# .../vault/lab   ← teleported!
cd -             # Return to previous directory (the scrap heap)
pwd
# .../scrap

cd - takes you back to wherever you were last. Very useful.

Step 3 β€” Read the hint

cat crystal_hint
# "Create a shortcut named 'quick_entrance' pointing to ../../ENTRANCE"

Step 4 β€” Create your own portal

ln -s ../../ENTRANCE quick_entrance
ls -l quick_entrance
# lrwxrwxrwx  1 user group  20 Jan 01  quick_entrance -> ../../ENTRANCE

ls -F quick_entrance/
# scroll  cellar/          ← entrance contents, via symlink

Step 5 β€” Inspect and resolve

readlink quick_entrance
# ../../ENTRANCE

readlink -f quick_entrance
# /home/user/bashcrawl/ENTRANCE  ← absolute, resolved path

Step 6 β€” Collect the crystal

cat crystal_hint
inventory
# portal crystal βœ“

πŸ’‘ Common Pitfalls

Problem Cause Fix
Symlink shows broken (red in terminal) Target path does not exist Check relative path with readlink
ln -s with no arguments Wrong order Syntax: ln -s TARGET LINK_NAME
cd symlink goes somewhere unexpected Relative path off Use absolute path or readlink -f
Cannot delete directory via symlink Symlink vs directory rm symlink removes the link; rm -r removes the target

Danger: rm -r symlink_to_dir may behave unexpectedly depending on your shell version. Prefer unlink symlink_name to safely remove only the link.

βœ… Validation

➑️ Next Steps


πŸ“š External Resources

Continue your terminal adventure with these resources:


Portals created. The dungeon’s geography bends to your will. πŸ—‘οΈ