我希望能够使某个目录下的所有文件(和文件夹)都变成全局可读,而不必逐个chmod每个文件。如果有一个选项可以递归地执行此操作(查看文件夹并在其中的所有文件上进行chmod 666),那就太好了。
我希望能够使某个目录下的所有文件(和文件夹)都变成全局可读,而不必逐个chmod每个文件。如果有一个选项可以递归地执行此操作(查看文件夹并在其中的所有文件上进行chmod 666),那就太好了。
man 3 chmod
包含您需要的信息。
chmod -R +r directory
-R
选项告诉chmod
递归操作。
-r
用于表示递归操作,而 -R
则表示危险的递归操作。如果在 chmod
和 chown
中使用大写的 R
,那是因为我们更倾向于使用更精确的操作,比如使用 find
命令。请查看我的回答! - F. Hauri - Give Up GitHub由于目录可能包含链接和/或挂载点,因此使用find
可以确保对要做什么和不做什么进行最细粒度的控制....
find directory \( -type f -o -type d \) -print0 |
xargs -0 chmod ugo+r
排除挂载点下的路径:
find directory -mount \( -type f -o -type d \) -print0 |
xargs -0 chmod ugo+r
排除一些特定的文件(例如 .htaccess 文件):
find directory \( -type f -o -type d \) ! -name '.htaccess' -print0 |
xargs -0 chmod ugo+r
bash
标签。 但是,这只是一个评论,对吧? - Pedro Romano