ls — List Directory Contents
The ls command is the primary way to inspect files and directories in Linux.
If cd moves you and pwd tells you where you are, ls shows you what exists there.
Before editing, deleting, backing up, or debugging anything on a VPS, you should inspect the directory contents with ls.
For WordPress administrators and DevOps engineers, ls is used constantly to:
- Verify plugin and theme directories
- Check file permissions
- Inspect logs
- Confirm backup files
- Detect suspicious or recently modified files
Core Purpose
ls lists files and directories in:
- The current directory
- A specified path
- Multiple paths
Basic usage:
ls
Lists contents of the current directory.
Specify a path:
ls /var/www/html
Core Syntax
ls [OPTIONS] [FILE|DIRECTORY]
You can combine multiple options:
ls -lah
3. Most Important Options (Practical First)
While ls has many flags, these are the ones used daily in real VPS work.
Long Listing (-l)
ls -l
Example output:
-rw-r--r-- 1 root root 405 Oct 2 09:12 index.php
drwxr-xr-x 5 root root 4096 Oct 2 09:12 wp-content
Shows:
- File permissions
- Number of links
- Owner
- Group
- File size
- Modification date
- Name
Essential for debugging WordPress permission issues.
Human Readable Sizes (-h)
ls -lh
Displays sizes in KB/MB/GB instead of raw bytes.
Show Hidden Files (-a)
ls -a
Shows:
.htaccess.env.git.bashrc
Critical for debugging hidden WordPress configuration files.
Combine Common Flags
ls -lah
Most commonly used inspection command on Linux systems.
Sort by Modification Time (-t)
ls -lt
Newest files first.
Useful for:
- Detecting hacked files
- Checking recently uploaded backups
- Debugging logs
Reverse Order (-r)
ls -ltr
Oldest files first.
Sort by Size (-S)
ls -lhS
Largest files first.
Helpful for:
- Finding large backups
- Detecting disk space usage
Recursive Listing (-R)
ls -R
Lists directory and all subdirectories recursively.
Useful for:
- Auditing full WordPress structure
- Quick structure overview (small projects only)
Show Only Directory Itself (-d)
ls -ld wp-content
Shows info about the directory, not its contents.
Show Inode Number (-i)
ls -i
Useful for filesystem-level debugging.
Numeric IDs (-n)
ls -ln
Shows numeric UID and GID instead of names.
Helpful in containerized or multi-user environments.
4. Output Formatting Options
One Entry Per Line (-1)
ls -1
Good for scripting:
ls -1 | wc -l
Comma-Separated (-m)
ls -m
Useful for quick documentation.
Full Timestamp
ls -l --full-time
Shows exact modification time including seconds and nanoseconds.
Important for forensic analysis after security incidents.
Force Format
ls --format=long
Ensures consistent formatting (useful in scripts).
5. Sorting & Time Control
Sort by Extension (-X)
ls -X
Groups .php, .log, .txt files together.
Natural Version Sort (-v)
ls -v
Sorts like:
file1
file2
file10
Instead of lexicographical sorting.
No Sorting (-U)
ls -U
Displays entries as stored in directory (fastest).
Control Time Display
ls -l --time=ctime
Options:
atime→ Last access timectime→ Metadata change timebirth→ Creation time (if supported)
6. File Selection & Filtering
Show All Except . and .. (-A)
ls -A
Follow Symlinks (-L)
ls -lL
Do Not Follow Symlinks (-P)
ls -lP
Ignore Pattern
ls --ignore=*.log
7. Color & Visual Enhancements
Enable Colors
ls --color=auto
Most systems already alias this.
Group Directories First
ls --group-directories-first
Improves readability in WordPress root directories.
Append File Type Indicators
ls -F
Adds:
/for directories*for executables
8. WordPress VPS Practical Examples
1. Inspect WordPress root
ls -lah /var/www/html
2. Check plugins
ls -lah /var/www/html/wp-content/plugins
3. Detect recently modified files
ls -lt /var/www/html
4. Find large backups
ls -lhS /backups
5. Inspect Nginx logs
ls -lh /var/log/nginx
6. Check hidden config
ls -la /var/www/html | grep htaccess
7. Count files
ls -1 | wc -l
8. Recursive structure
ls -R wp-content
9. Check directory permissions
ls -ld wp-content
10. Investigate suspicious files
ls -lt --full-time
9. Troubleshooting Matrix
| Problem | Cause | Fix |
|---|---|---|
| -- | - | |
| Hidden file not visible | Missing -a | Use ls -a |
| Wrong order | Sorting option active | Add/remove -t, -S, -r |
| Permission denied | No access rights | Use sudo or change directory |
| Output messy | Too many files | Use -1 or pipe to less |
10. Cheat Sheet
ls # List current directory
ls -l # Long format
ls -a # Show hidden files
ls -lah # Long + all + human-readable
ls -lt # Sort by time
ls -lhS # Sort by size
ls -R # Recursive
ls -ld dir # Directory info only
ls --color # Colored output
11. Final Perspective
ls is more than a listing tool.
It is your inspection and verification command.
Before:
- Editing WordPress files
- Changing permissions
- Deleting backups
- Restarting services
- Investigating hacks
Always inspect the directory with ls.
In Linux administration, visibility prevents mistakes.
Mini Knowledge Check
- What does
ls -lahshow? - How do you list files sorted by newest first?
- Which flag shows hidden files?
- How do you display directory permissions without listing its contents?
If you'd like next:
- A full navigation module (`pwd`, `cd`, `ls`, `tree`)
- A WordPress VPS filesystem map
- A permissions deep dive (`chmod`, `chown`, `stat`)
- Or a security-focused file inspection guide
Tell me the direction.