0

我有一个站点,有一些模板目录,有几个模块,每个模块都有自己的模板目录(所以有 N 个名为的目录templates)。

这些目录中的每一个都有一个目录,称为translated. 我需要一个脚本来设置所有这些目录并且它的内容是可写的。

我更喜欢通过循环进行此操作,以便我可以回显结果。我的 shell 技能(仍然)非常少,我似乎无法将它们组合起来,我可以从当前工作目录中找到目录,但我似乎无法递归:

for f in ./*/translated/
do
    echo $f
done

这只会找到./templates/translated/,但不会./some/dirs/deeper/translated/

$f现在可以使用 a chmod a+rw,但这只会将内容设置为可写,我如何也获取目录本身?我也需要在其中写入新文件。

总结:
1)我如何使它递归?
2)如何将目录本身设置为+rw

4

1 回答 1

2

递归查找东西的工具称为find.

find . -name 'translated' -type d -exec echo chmod -R u+rw {} +

echo如果您对结果满意,请取出。如果您find不支持,请-exec ... +尝试使用-exec ... \;

一些 shell 有一个通配符**,它​​会做同样的事情,但是你的脚本将被绑定到那个特定的 shell。

于 2015-01-29T09:49:21.800 回答