LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1253|回复: 3

使用shell修改权限的问题

[复制链接]
发表于 2003-7-2 11:24:42 | 显示全部楼层 |阅读模式
我想实现的功能:
在/data/data1目录中有很多文件也可能随时回向里面添加文件,我想把这下面的文件设置成只读属性(chattr +i 文件名),如何去自动探测有一个新的文件在这个目录下生成了。
谢谢!!
发表于 2003-7-2 12:27:20 | 显示全部楼层
这样试试:
ls -1 /data/data1 > file.lst1

然后过一段时间再执行一次:
ls -1 /data/data1 > file.lst2

然后比较两次的差别。提出比file.lst多的文件名:
diff list1 list2 | grep ^\> | awk '{print $2}'

完整的脚本:

  1. #!/bin/sh

  2. if [ -e file.lst1 ]; then
  3.     ls -1 /data/data1 > file.lst2
  4. else
  5.     ls -1 /data/data1 > file.lst1
  6.     ls -1 /data/data1 > file.lst2
  7. fi

  8. for i in `diff file.lst1 file.lst2 | grep ^\> | awk '{print $2}'`; do
  9.     if [ "$i" != "file.lst1" -a "$i" != "file.lst2" ]; then
  10.          chattr +i $i
  11.     fi
  12. done

  13. cp file.lst2 file.lst1

  14. sleep 120 # 休息2分钟再执行
  15. $0
复制代码


我是假设你将这个shell脚本也放在/data/data1中,如果没有放在/data/data1中就不需要:
if [ "$i" != "file.lst1" -a "$i" != "file.lst2" ]; then
这句了。
发表于 2003-7-2 12:58:09 | 显示全部楼层
解释:实际上就是用diff来比较文件列表的更新,然后再修改多出来的文件的属性.
谢谢plan9兄!
 楼主| 发表于 2003-7-2 13:10:29 | 显示全部楼层
谢谢了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表