我有这个脚本并想简化它。任何帮助,将不胜感激:
#!/bin/ash
chmod 775 /path/to/directory
chown -R http:http /path/to/directory
cd /path/to/directory
find . -type d -exec chmod 775 {} \; ; find . -type f -exec chmod 664 {} \;
chmod 775 /path/to/directory1
chown -R http:http /path/to/directory1
cd /path/to/directory1
find . -type d -exec chmod 775 {} \; ; find . -type f -exec chmod 664 {} \;
chmod 775 /path/to/directory2
chown -R http:http /path/to/directory2
cd /path/to/directory2
find . -type d -exec chmod 775 {} \; ; find . -type f -exec chmod 664 {} \;
谢谢。
答案1
#!/bin/ash
for i in \
'/path/to/directory' \
'/path/to/directory1' \
'/path/to/directory2' \
;do
chmod 775 "$i"
chown -R http:http "$i"
cd "$i" && \
find . \
-type d -exec chmod 775 {} \; \
-o \
-type f -exec chmod 664 {} \;
done
解释
由于您在 dir1/2/3 上执行相同的一组操作,因此将它们移动到循环下是有意义的。
借助布尔逻辑规则,两个查找命令也可以移动到一个查找命令中。