dchmod [OPTION] PATH ...


Parallel MPI application to recursively change permissions and/or group from a top level directory.

dchmod provides functionality similar to chmod(1), chown(1), and chgrp(1). Like chmod(1), the tool supports the use of octal or symbolic mode to change the permissions.


-i, --input FILE

Read source list from FILE. FILE must be generated by another tool from the mpiFileUtils suite.

-u, --owner USER

Change owner to specified USER name or numeric user id.

-g, --group GROUP

Change group to specified GROUP name or numeric group id.

-m, --mode MODE

The mode to apply to each item. MODE may be octal or symbolic syntax similar to chmod(1). In symbolic notation, "ugoa" are supported as are "rwxX". As with chmod, if no leading letter "ugoa" is provided, mode bits are combined with umask to determine the actual mode.

-f, --force

Attempt to change every item. By default, dchmod avoids unncessary chown and chmod calls, for example trying to change the group on an item that already has the correct group, or trying to change the group on an item that is not owned by the user running the tool. With --force, dchmod executes chown/chmod calls on every item.

-s, --silent

Suppress EPERM error messages, which is useful when running dchmod on large directories with files owned by other users.

--exclude REGEX

Do not modify items whose full path matches REGEX, processed by regexec(3).

--match REGEX

Only modify items whose full path matches REGEX, processed by regexec(3).

-n, --name

Change --exclude and --match to apply to item name rather than its full path.

--progress N

Print progress message to stdout approximately every N seconds. The number of seconds must be a non-negative integer. A value of 0 disables progress messages.

-v, --verbose

Run in verbose mode. Prints a list of statistics including the number of files walked, the number of levels there are in the directory tree, and the number of files the command operated on, and the files/sec rate for each of those.

-q, --quiet

Run tool silently. No output is printed.

-h, --help

Print the command usage, and the list of options available.


  1. Use octal mode to change permissions:

mpirun -np 128 dchmod --mode 755 /directory

  1. Set group and mode in a single command using symbolic mode:

mpirun -np 128 dchmod --group mygroup --mode u+r,g+rw /directory

  1. Set owner and group, leaving permissions the same:

mpirun -np 128 dchmod --owner user1 --group mygroup /directory

  1. Change permissions to u+rw on all items EXCEPT those whose name match regex:

mpirun -np 128 dchmod --name --exclude ‘afilename’ --mode u+rw /directory

Note: You can use --match to change file permissions on all of the files/directories that match the regex.


The mpiFileUtils source code and all documentation may be downloaded from <https://github.com/hpc/mpifileutils>