我想更改目录中每个文件的权限。我一直在使用,chmod 777
但如果我有 50 个文件,那就太浪费时间了。
如何让目录下的所有文件都变成原来的样子而rwx
无需逐个更改?
答案1
chmod -cR 777 *
将以递归方式(R 选项)更改包括子目录在内的所有文件,但也会在进行更改时报告(c 选项)。
您可能不想更改具有过宽权限的所有文件,而是想更改所有权。
sudo chown -hR tomcat
上面的代码将所有权更改为 tomcat 应用服务器,您需要确定您的 Web 服务器正在使用哪个用户。您可以通过以下方式轻松查看
ps aux
(h 选项用于在遇到符号链接时更改其所有权,但不更改其链接到的文件)
答案2
您正在做的事情很可能是不安全的,只有您完全接受安全问题才应调用以下命令。
find . -type d -exec chmod 777 '{}'* \;
这将递归遍历当前目录和每个子目录并相应地更改权限;如果我没有说清楚的话,这是一个非常糟糕的主意(777 权限)
答案3
该脚本将对当前目录中的所有文件执行命令:
sudo find . -name "*" | awk '{print("chmod 777 "$1)}'| /bin/sh
为了先测试脚本,您可以直接输出语句,而无需将它们通过管道传输到要执行的 shell:
sudo find . -name "*" | awk '{print("chmod 777 "$1)}'
使用 awk 的相同模式通常对于执行批处理 shell 命令很有用。
答案4
只需输入:
chmod 777 *