shell递归给目录下的所有文件设权限
时间: 2023-08-01 15:12:41 浏览: 64
要递归地为目录下的所有文件设置权限,你可以使用 `find` 命令结合 `chmod` 命令。以下是一个示例:
```bash
#!/bin/bash
# 指定目录路径
directory="/path/to/directory"
# 使用 find 命令查找目录下的所有文件,并为它们设定权限
find "$directory" -type f -exec chmod 644 {} +
```
在上述示例中,我们使用 `find` 命令来查找指定目录 `$directory` 下的所有文件。`-type f` 参数用于限定只查找普通文件(排除目录和符号链接等)。`-exec chmod 644 {} +` 表示对每个找到的文件执行 `chmod 644` 命令,即设置文件权限为 `-rw-r--r--`。
请确保将 `/path/to/directory` 替换为你实际的目录路径。这会递归地将权限应用于目录下的所有文件,但不会修改目录的权限。如果你想要同时修改目录的权限,可以使用 `-type d` 参数来限定 `find` 命令查找目录,然后执行相应的 `chmod` 命令。
相关问题
shell命令修改目录下所有文件的码值
可以使用 `chmod` 命令来修改目录下所有文件的码值。假设你需要将目录 `/path/to/directory` 下的所有文件的权限修改为 `755`,可以使用以下命令:
```
chmod -R 755 /path/to/directory
```
其中,`-R` 表示递归修改所有子目录和文件的权限。`755` 是权限码值,分别表示:
- `7`:表示拥有者的权限,可读、可写、可执行;
- `5`:表示拥有者所在组的权限,可读、可执行;
- `5`:表示其他用户的权限,可读、可执行。
你也可以根据自己的需求修改权限码值。注意,修改文件权限可能会影响系统的安全性,请谨慎操作。
shell脚本创建目录、文件
使用Shell脚本创建目录可以使用mkdir命令。mkdir命令的语法如下:
mkdir [选项] 目录名称
其中,选项可以是以下之一:
-p:递归创建目录,即如果上级目录不存在,也一并创建。
-m:指定目录的权限。
例如,要创建一个名为"test"的目录,可以使用以下命令:
mkdir test
如果要递归地创建多级目录,并设置权限为777,可以使用以下命令:
mkdir -p -m 777 dir1/dir2/dir3
使用Shell脚本创建文件可以使用echo命令将内容输出到文件中,然后使用重定向符号">"将输出内容写入到文件中。例如,要创建一个名为"test.txt"的文件并写入内容"nice day !",可以使用以下命令:
echo "nice day !" > test.txt
如果需要在文件已经存在的情况下追加内容,可以使用双大于符号">>"进行追加。例如,要在已经存在的"test.txt"文件中追加内容"hello world",可以使用以下命令:
echo "hello world" >> test.txt