Octal vs symbolic chmod notation explained
The two ways to write chmod—octal numbers like 755 and symbolic forms like u+x or go-w. How each works, when to prefer one and how they map to the same bits.
Quick Answer
Octal notation like 755 sets the whole mode at once and is best when you want an absolute, predictable result. Symbolic notation like u+x or go-w changes specific bits relative to the current mode and is best for surgical edits. Both describe the same read, write and execute bits.
Search Snapshot
- Format
- Engineering
- Reading time
- 4 min
- Last updated
- June 12, 2026
- Primary topic
- chmod symbolic notation
- Intent
- informational
Key Takeaways
Point 1
Octal sets an absolute mode; symbolic adjusts bits relative to what is already there.
Point 2
Symbolic uses who (u/g/o/a), an operator (+/-/=) then perms (r/w/x).
Point 3
Use octal for predictable defaults and symbolic for targeted one-off changes.
There are two ways to write a chmod command and most people learn one then feel lost reading the other. Octal notation is the numeric 755 style; symbolic notation is the u+x letter style. Understanding octal vs symbolic chmod notation means you can read any command you find and pick whichever form fits the change you are making.
How octal notation works
Octal notation describes the complete mode as three digits, one each for the owner, the group then everyone else. Each digit is the sum of read (4), write (2) and execute (1). So 750 is owner 7 (all three), group 5 (read plus execute) and other 0 (nothing). The defining feature is that octal is absolute: it sets every bit at once regardless of what was there before. That predictability is why scripts and documentation lean on it. The chmod calculator shows the binary breakdown behind each digit if the arithmetic feels opaque.
How symbolic notation works
Symbolic notation names three things: who, an operator then which permissions. The who is u for the owner, g for the group, o for other or a for all. The operator is + to add, - to remove or = to set exactly. The permissions are r, w and x. So chmod u+x script.sh adds execute for the owner only, leaving every other bit untouched. Because symbolic changes are relative, they are perfect for surgical edits: you can flip one bit without restating the whole mode.
| Intent | Octal | Symbolic |
|---|---|---|
| Standard file | 644 | u=rw,go=r |
| Executable script | 755 | u=rwx,go=rx |
| Add execute for owner | (depends on current) | u+x |
| Remove write from group and other | (depends on current) | go-w |
| Make readable by everyone | (depends on current) | a+r |
The same intent expressed both ways.
When to prefer each
Reach for octal when you want an absolute, repeatable result—setting a deploy artifact to 644 or a directory to 755 should not depend on the file's previous state. Reach for symbolic when you want a targeted change that leaves everything else alone, such as adding execute to a script you just downloaded with chmod u+x, or stripping group write with chmod go-w. Symbolic also shines in recursive operations through the capital X mode, which the recursive chmod guide covers, because it adds execute only where it belongs.
They describe the same thing
It helps to remember that both notations point at the identical underlying bits. chmod 644 file and chmod u=rw,go=r file produce exactly the same result. The choice is about ergonomics rather than capability: numbers for completeness and repeatability, letters for clarity on a small change. If you are still building intuition for which digit means what, the chmod 755 vs 644 guide walks through the two most common modes in detail.
Frequently asked questions
What is the difference between octal and symbolic chmod?
Octal sets every bit at once to an absolute value, while symbolic changes only the bits you name relative to the current mode. Octal is predictable; symbolic is surgical.
What does u+x mean in chmod?
It adds the execute bit for the owner only, without touching the group, other or any other permission.
Bottom line
Octal and symbolic notation are two views of the same permission bits. Use octal for absolute defaults and symbolic for relative tweaks and lean on the chmod calculator to translate between them until both styles read fluently.
Get new playbooks weekly
Actionable guides, market updates and shipping notes — once a week.