我有一个存档,由其他人存档,我想在下载后自动更改提取文件中的文件系统分支以获得读取权限。(我无法更改存档的创建方式)。
这些目录最初带有多个但都是错误的标志,它们可能显示为:
drwx------ d---r-x--- drwxrwxr-x dr--r-xr--
这些只是我迄今为止发现的少数几个,但可能更多。
find尝试在没有x权限的情况下查看目录时出错,因此不会将其传递给chmod. 到目前为止,我一直在做的是手动更改父目录的权限,然后进入子目录并为它们做同样的事情等等。但这是很多手工劳动。没有办法自动执行此操作吗?
find
x
chmod
即我现在是怎么做的:
做:
$ chmod -R +x $ chmod -R +r
直到我没有错误,然后
$ find -type f -exec chmod -x {} +
但必须有更好的方法。
除了执行权限之外,您还需要读取权限才能列出目录。如果您只有执行权限,那么您可以找到目录中条目的名称,但没有其他信息(甚至没有类型,所以您不知道哪些条目是子目录)。这对我有用:
find . -type d -exec chmod +rx {} \;