小编典典

递归地chmod

all

我有一个存档,由其他人存档,我想在下载后自动更改提取文件中的文件系统分支以获得读取权限。(我无法更改存档的创建方式)。

这些目录最初带有多个但都是错误的标志,它们可能显示为:

drwx------
d---r-x---
drwxrwxr-x
dr--r-xr--

这些只是我迄今为止发现的少数几个,但可能更多。

find尝试在没有x权限的情况下查看目录时出错,因此不会将其传递给chmod.
到目前为止,我一直在做的是手动更改父目录的权限,然后进入子目录并为它们做同样的事情等等。但这是很多手工劳动。没有办法自动执行此操作吗?

即我现在是怎么做的:

做:

$ chmod -R +x
$ chmod -R +r

直到我没有错误,然后

$ find -type f -exec chmod -x {} +

但必须有更好的方法。


阅读 72

收藏
2022-05-23

共1个答案

小编典典

除了执行权限之外,您还需要读取权限才能列出目录。如果您只有执行权限,那么您可以找到目录中条目的名称,但没有其他信息(甚至没有类型,所以您不知道哪些条目是子目录)。这对我有用:

find . -type d -exec chmod +rx {} \;
2022-05-23