gpt4 book ai didi

linux - 使用 bash 更改路径中每个目录的权限

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:01 25 4
gpt4 key购买 nike

我正在尝试更改用户指定的路径中每个目录的权限。这将在 bash 脚本中完成。例如:

DIR = /a/b/c/d/e/f/

chmod 777 /a/b/c/d/e/f/

chmod 777 /a/b/c/d/e/

chmod 777 /a/b/c/d/

chmod 777 /a/b/c/

chmod 777 /a/b/

chmod 777 /a/

777 只是一个示例。解决方案应允许任何权限。

我不想更改目录中文件的权限,并且我不能假设这些是唯一的子目录。我只想更改用户指定的路径中明确的权限。

最佳答案

最明显的方法是从最深点开始,并在循环中使用 dirname 向上迭代:

perms=a+rX
d=a/b/c/d/e/f

while [ "$d" != . ]
do
chmod $perms "$d"
d=$(dirname "$d")
done

这都是可移植的 shell,因此不依赖于 Bash - 任何符合 POSIX 标准的 shell 就足够了。

我使用了相对目录名称,因为您确实不想在真实系统上更改 / 的权限。

您当然可以只使用替换扩展而不是调用 dirname 如果您想要:d=${d%/*}

关于linux - 使用 bash 更改路径中每个目录的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com