如何使目录下的所有文件在linux上可读? [关闭]
Posted
技术标签:
【中文标题】如何使目录下的所有文件在linux上可读? [关闭]【英文标题】:How to make all files under a directory world readable on linux? [closed] 【发布时间】:2012-10-18 15:00:25 【问题描述】:我想让某个目录下的所有文件(和目录)都可读,而不必单独对每个文件进行 chmod。如果有一个选项也可以递归地执行此操作,那就太好了(查看文件夹和 chmod 666 下的所有文件)
【问题讨论】:
@PedroRomano 你怎么知道这个不是用来写 Bash 脚本的? @H2CO3:似乎不属于What kind of questions can I ask here?。在标题或文本的任何地方都没有提到 Bash。没有bash
标签。但是,这只是一个评论,对吧?
@Rorchackh 你是想让仅文件可读并排除目录,还是你写“所有文件”时的意思是“目录中的所有条目”?我认为后者适用。
目录中的所有内容。这包括子目录。
感谢您的澄清!
【参考方案1】:
man 3 chmod
包含您要查找的信息。
chmod -R +r directory
-R
选项告诉chmod
递归操作。
【讨论】:
Historicaly-r
用于 recursive 操作,-R
用于 dangerous recursive。如果大写的R
用于chmod
和chown
,那是因为我们更喜欢使用更精确的操作,例如使用find
。看我的回答!【参考方案2】:
由于目录可能包含链接和/或绑定挂载,因此使用 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
【讨论】:
【参考方案3】:chmod -R 0444 ./folder_name
Apply the permission to all the files under a directory recursively
【讨论】:
以上是关于如何使目录下的所有文件在linux上可读? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章