Developer tools · Chmod calculator
chmod -R with capital X: recursive permissions without executable files
· How it works
chmod unix developer-workflow
Recursive chmod either strips execute from directories or adds it to files, unless you use the tools built for the distinction. This post explains capital X and the find alternative.
Every file in the tree is now marked executable — chmod -R 755 fixed the directories and made every .txt executable too
A recursive command can impose one mode on objects that need different permissions. Enter 755 and the calculator renders rwxr-xr-x, then compare regular-file and directory explanations. Execute lets a file run as a program, but lets a directory be entered and its named contents reached. One digit therefore carries sharply different consequences.
The builder can display -R and safely quote a supplied path, but it never opens that path or runs chmod. Compare 755 with 644: the first grants execute to every class, while the second renders rw-r--r--. This shows how recursion may create unintended executable files without claiming anything about a real directory tree.
Why a single mode cannot fit both — files usually want 644 and directories 755, and -R applies one mode to everything
One mode cannot express separate rules for directories and regular files. Mode 755 gives the owner read, write and execute, with group and other receiving read and execute. Mode 644 removes every execute bit and reserves write for the owner. The target selector changes the explanation, not the underlying bits.
Compare candidates independently in the matrix. Under 755, every class has execute; under 644, every execute box is clear and only the owner retains write. Octal, symbolic text, summary and checkboxes derive from one integer, so agreement confirms consistent encoding, not suitability for an unknown target or environment.
The capital X permission — execute is set only where the target is a directory or already has execute for some class
Capital X belongs to chmod's symbolic command grammar, which this calculator neither parses nor generates. Its symbolic input is the fixed nine-character ls display, and generated assignments use explicit u=, g= and o= clauses with r, w and x. It can display final modes, but cannot decide which tree members capital X would select.
Treat that distinction as a firm boundary. Enter 755 to inspect rwxr-xr-x and 644 to inspect rw-r--r--; both are fixed results. The page explains execute differently for directories and files, yet has no path walker, type inventory or prior execute state. It cannot model capital X across mixed recursive targets.
Capital X belongs to chmod grammar but is not generated by this calculator
The supported comparison begins with completed modes, not a recursive symbolic command. Enter 755 for a directory: the summary shows 0755 and drwxr-xr-x, with owner write plus read and execute for all classes. Enter 644 for a file: it shows 0644 and -rw-r--r--, with no execute permissions.
Side by side, every class loses execute from 755 to 644, while owner write and universal read remain. Generated assignments stay separate: u=rwx,g=rx,o=rx and u=rw,g=r,o=r. The calculator neither combines them into one recursive operation nor chooses targets; it verifies representations for a separately reviewed workflow.
Worked example: compare the resulting 755 and 644 modes separately
Splitting files and directories with find is an external workflow, not a calculator feature. The page has no scanner, path filter, type test or executor. It can instead decode proposed directory and file modes before commands are assembled. Checking 755 and 644 separately prevents a familiar number from concealing an execute grant.
Keep discovery separate from conversion. Any mechanism selecting directories or regular files must be reviewed elsewhere. Within the calculator, arithmetic is deterministic: read contributes 4, write 2 and execute 1 to each class digit. This verifies intended values without claiming support for find syntax, traversal rules or portable recursive behavior.
find-based recursion is an external workflow, not a calculator feature
A displayed recursive command guarantees nothing about symbolic links. Selecting “Apply recursively” merely adds -R to the preview; it does not inspect directories, discover links or predict operating-system behavior. The path field only builds quoted shell text. Even active shell characters remain inert until someone deliberately copies and executes the command elsewhere.
Read the preview as requested mode bits, not a simulation. The calculator can render 755 as rwxr-xr-x and produce chmod -R 755 with a quoted path. It cannot identify reached objects, link-following behavior or filesystem support. Those answers require the actual command implementation and environment, neither represented by the browser inputs.
The displayed -R command carries no cross-platform symlink guarantee
Mode preservation by archives, synchronization tools or Git lies outside the sources. The calculator reads no archive, repository metadata or transfer history. It accepts one value and renders octal, symbolic text, checkboxes, prose and a chmod command. That verifies a supplied permission value, not whether another tool records, discards or reconstructs it.
After an external transfer changes a mode, use the calculator only for provable differences. Decode observed and expected values, then identify changed owner, group or other bits. For example, 755 and 644 differ in all execute positions. The source cannot attribute that delta to rsync, tar, Git, umask or a filesystem.
Archive, rsync and Git mode preservation are outside the source set
The reliable takeaway is narrower than a capital-X recipe. Directories and files may need different final modes, and the calculator makes each result legible. It accepts octal or fixed symbolic input and synchronizes the matrix. In this comparison, 755 preserves execute for every class, while 644 removes execute everywhere.
Use generated output as a review artifact. The page may add -R, but cannot conditionally select directories, inspect existing execute bits or determine link traversal. It also lacks ownership, ACL and policy context. Verify each fixed result, confirm octal and symbolic agreement, then inspect real targets before applying any mode.