chmod-cli
A simple command line tool for changing file permissions. The UNIX command chmod 777 filename
for node.
Installation
$ npm install chmod-cli
# Or
$ npm install --global chmod-cli
Usage
$ chmod-cli --help
A simple command line tool for changing file permissions.
Usage: $ chmod-cli <path> …
Options:
--version, -v Show version number
--help, -h Displays help information.
--mode, -m The new permissions for the file or directory.
This can be a numeric mode (e.g. 666),
or a string mode (e.g. 'rwxr-xr-x')
Examples:
$ chmod-cli test.js xxx.js -m 0o777
$ chmod-cli test.js -m 0o777
$ chmod-cli test.js -m 0o777
API
chmod(path, mode, callback)
Changes the permissions of the file or directory at the specified path
.
-
path
(string): The path to the file or directory. -
mode
(string or number): The new permissions for the file or directory. This can be a numeric mode (e.g. 666), or a string mode (e.g. 'rwxr-xr-x'). -
callback
(function): A callback function to call when the operation completes. The callback should take one argument, an error object, which will be null if the operation completes successfully.
import chmod from 'chmod-cli';
chmod('./test.txt', '666', (err) => {
if (err) throw err;
console.log('File permissions have been changed.');
});
File Permissions Explanation
In the numeric notation of file permissions, each digit represents a file permission group (owner permission, user group permission, other user permission). In this notation, the numeric value for each permission is:
- Read permission:
4
- Write permission:
2
- Execute permission:
1
Therefore, 777
means:
- Owner permission: Read (4), Write (2), Execute (1) =
4+2+1 = 7
- User group permission: Read (4), Write (2), Execute (1) =
4+2+1 = 7
- Other user permission: Read (4), Write (2), Execute (1) =
4+2+1 = 7
In total, this makes 777
, which means that the file's owner, members of the same user group, and all other users can read, write, and execute that file. This permission configuration is very open and should be used with caution.
License
This package is licensed under the MIT License.