请教一个问题,chmod 命令怎么样排除指定的目录

2014-03-14 18:37:56 +08:00
 Tink
现在有一个特殊需求,需要定期对一个大目录下的所有文件和文件夹赋予777权限,但是需要排除其中的两个目录,这两个目录以及目录下的文件的权限不能有任何变化

求指点。
3485 次点击
所在节点    Linux
8 条回复
nicai000
2014-03-14 19:26:13 +08:00
配合find
Tink
2014-03-14 19:50:16 +08:00
@nicai000 额,find应该只能指定哪些目录被执行吧?也能排除么

我最后用脚本弄了,虽然有点麻烦

do
if [ $file != "1" ]&&[ $file != "2" ]; then
chmod -R 777 $file
fi
done
nicai000
2014-03-14 19:56:24 +08:00
像这样?

find ~/ ! -name foo ! -name bar -exec chmod -R 777 {} \;
Tink
2014-03-14 19:57:21 +08:00
@nicai000 好顶赞!
nicai000
2014-03-14 19:58:39 +08:00
find好像是不是很对, 那么这样? (我都没试过哈)

ls -1|grep -v foo|grep -v bar|xargs chmod -R 777
sandtears
2014-03-14 20:41:21 +08:00
其实有个蠢办法,先移出去然后777然后移回来。。。
zent00
2014-03-14 22:48:16 +08:00
chmod -R 777 !(1|2)
webjin
2014-03-20 01:28:28 +08:00
@zent00 正则???

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/104341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX