(01) ๐Ÿงญ The Lost Expedition

Room-01

ROOM 01
๐Ÿงญ The Lost Expedition

โš ๏ธ sudo Access

  • You might need sudo access for some commands.
  • The sudo password is required for elevated privileges.
  • The sudo password is: escape.
  • Write it down, you will need it later.

A famous explorer vanished deep in the jungle, leaving 9 map fragments scattered across a maze of directories, mixed in with thousands of noise files, only the .map files contain the clues.


FIND THE MAP FRAGMENTS!
  1. Navigate into the expedition/ directory.
  2. The expedition/ camp is littered with noise files (.rock, .leaf, .twig) everywhere. Ignore them all.
  3. The explorer left exactly 9 map fragments (files ending in .map) hidden across the sub-directories. Find them all.
  4. Once you locate all .map files, sort their full paths alphabetically and read (cat) their contents in that order.
  5. Concatenate the letters - they spell the password for the next room.

Key Commands
Command Purpose
find . -name "*.txt" Find files by name pattern
find . -type f Find only files (not dirs)
find . -type d Find only directories
find . -mtime -7 Files modified in last 7 days
find . -size +1M Files larger than 1 MB
find . -perm 644 Files with exact permissions
find . -name "*.log" -delete Find and delete matching files
find . -maxdepth 2 Limit search depth
find . -not -name "*.txt" Exclude pattern
cat file Print file to stdout
cat -n file Show with line numbers
cat -A file Show non-printing chars (tabs, EOL)
cat file1 file2 Concatenate files
sort file Sort lines alphabetically
sort -n file Numeric sort
sort -r file Reverse sort
sort -k2 file Sort by 2nd field
sort -u file Sort and deduplicate
xargs cmd Build cmd args from stdin
xargs -I{} cmd {} Replace {} with each item

How find Works
# Find by name pattern
find . -name "*.txt"                      # files ending in .txt
find . -name "report.txt"                 # exact name match
find . -iname "*.TXT"                     # case-insensitive match

# Find by type
find . -type f                            # regular files only
find . -type d                            # directories only
find . -type l                            # symbolic links only

# Find by depth
find . -maxdepth 2 -name "*.txt"          # search at most 2 levels deep
find . -mindepth 2 -name "*.txt"          # skip the top level

# Find by size
find . -size +1k                          # larger than 1KB
find . -size -100c                        # smaller than 100 bytes
find . -size +1M -size -10M               # between 1MB and 10MB

# Find by modification time
find . -mtime -1                          # modified in the last 24 hours
find . -mtime +7                          # modified more than 7 days ago
find . -newer reference.txt               # newer than a reference file

# Find by permissions
find . -perm 755                          # exact permission match
find . -perm /u+x                         # executable by owner

# Execute a command on each result
find . -name "*.log" -exec rm {} \;       # delete each found file
find . -name "*.txt" -exec cat {} +       # cat all found files at once
Piping Commands Together
# Pipe basics: stdout of cmd1 becomes stdin of cmd2
cmd1 | cmd2 | cmd3

# xargs: build and run commands from stdin input
echo "file.txt" | xargs cat               # cat file.txt
find . -name "*.txt" | xargs wc -l        # count lines in all .txt files
find . -name "*.map" | sort | xargs cat   # sort paths then read all in order

# xargs options
find . -name "*.txt" | xargs -I{} cp {} /backup/  # use {} as placeholder
find . -name "*.txt" | xargs -n1 cat              # process one file at a time
find . -print0 | xargs -0 ls -l                   # handle filenames with spaces

The find command searches through ALL subdirectories by default.

sort without flags sorts alphabetically -perfect for getting the right order.

xargs cat reads each file found by find and displays its content.


๐Ÿ”“ Unlock Room 02

Once you solve the puzzle, run:

next <PASSWORD>