如何使目录下的所有文件在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 用于chmodchown,那是因为我们更喜欢使用更精确的操作,例如使用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上可读? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

给定背景颜色,如何获得使其在背景颜色上可读的前景色?

使文本在任意背景图像上可读

怎样使用C语言列出某个目录下的文件?

Linux编程之select

上传到Nginx的图片文件如何拥有可读的权限

安卓开发怎么获取文件夹下面所有文件