V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Tink
V2EX  ›  Linux

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

  •  
  •   Tink · 2014-03-14 18:37:56 +08:00 · 3581 次点击
    这是一个创建于 3939 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有一个特殊需求,需要定期对一个大目录下的所有文件和文件夹赋予777权限,但是需要排除其中的两个目录,这两个目录以及目录下的文件的权限不能有任何变化

    求指点。
    8 条回复    1970-01-01 08:00:00 +08:00
    nicai000
        1
    nicai000  
       2014-03-14 19:26:13 +08:00
    配合find
    Tink
        2
    Tink  
    OP
       2014-03-14 19:50:16 +08:00
    @nicai000 额,find应该只能指定哪些目录被执行吧?也能排除么

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

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

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

    ls -1|grep -v foo|grep -v bar|xargs chmod -R 777
    sandtears
        6
    sandtears  
       2014-03-14 20:41:21 +08:00
    其实有个蠢办法,先移出去然后777然后移回来。。。
    zent00
        7
    zent00  
       2014-03-14 22:48:16 +08:00
    chmod -R 777 !(1|2)
    webjin
        8
    webjin  
       2014-03-20 01:28:28 +08:00 via Android
    @zent00 正则???
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1659 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:47 · PVG 00:47 · LAX 08:47 · JFK 11:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.