Markdown Format | JSON API | MCP Server Tool
Change the access permissions of a file or directory.
chmod u+x {{path/to/file}}chmod u+rw {{path/to/file_or_directory}}chmod g-x {{path/to/file}}chmod a+rx {{path/to/file}}chmod o=g {{path/to/file}}chmod o= {{path/to/file}}chmod {{-R|--recursive}} g+w,o+w {{path/to/directory}}chmod {{-R|--recursive}} a+rX {{path/to/directory}} chmod LIST
Changes the permissions of a list of files. The first element of
the list must be the numeric mode, which should probably be an
octal number, and which definitely should *not* be a string of
octal digits: 0644 is okay, but "0644" is not. Returns the
number of files successfully changed. See also "oct" if all you
have is a string.
my $cnt = chmod 0755, "foo", "bar";
chmod 0755, @executables;
my $mode = "0644"; chmod $mode, "foo"; # !!! sets mode to
# --w----r-T
my $mode = "0644"; chmod oct($mode), "foo"; # this is better
my $mode = 0644; chmod $mode, "foo"; # this is best
On systems that support fchmod(2), you may pass filehandles
among the files. On systems that don't support fchmod(2),
passing filehandles raises an exception. Filehandles must be
passed as globs or glob references to be recognized; barewords
are considered filenames.
open(my $fh, "<", "foo");
my $perm = (stat $fh)[2] & 07777;
chmod($perm | 0600, $fh);
You can also import the symbolic "S_I*" constants from the
"Fcntl" module:
use Fcntl qw( :mode );
chmod S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, @executables;
# Identical to the chmod 0755 of the example above.
Portability issues: "chmod" in perlport.
Generated by phpMan Author: Che Dong Under GNU General Public License
2026-06-02 18:22 @216.73.216.151 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)