我是Linux世界的新手:请为这个问题道歉:
我编写了一个脚本,检查一个文件夹及其所有子文件夹的大小,如果该大小大于X个字节,则删除X天前已修改的文件。
为了测试目的,我已将文件夹大小设置为零,因此,脚本应已执行删除过程,但事实并非如此。
该脚本可以完成我期望的操作,我不知道为什么。
谢谢你的帮助。
脚本是:
#!/bin/sh
# 100GB SIZE LIMIT
SIZE="0"
# check the current size
CHECK="`du /media/nssvolumes/TEST/MB/`"
if ["$CHECK" -gt "$SIZE"]; then echo "$ACTION"
ACTION="`find /media/nssvolumes/TEST/MB/ -mindepth 0 -maxdepth 3 -mtime +1 -type f -exec rm -f {} \;`"
else exit
fi
好吧,这里有很多错误。假设您的操作系统是Linux,请尝试du
从命令行运行以了解其返回的内容,因为它不是数字。
[]
需要空格。""
因此,固定脚本为:
#!/bin/sh
# 100GB SIZE LIMIT
SIZE=0
MY_DIR="/media/nssvolumes/TEST/MB/"
# check the current size
CHECK=$(du -bs $MY_DIR|awk '{print $1}')
if [ $CHECK -gt $SIZE ]; then
echo "ACTION"
find $MY_DIR -mindepth 0 -maxdepth 3 -mtime +1 -type f -exec rm {} \;
fi
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句