Linux 文件夹/子文件夹大小,然后删除

Linux 文件夹/子文件夹大小,然后删除,linux,shell,directory,size,delete-file,Linux,Shell,Directory,Size,Delete File,我是Linux世界的新手:请接受我对这个问题的道歉: 我写了一个脚本,检查文件夹及其所有子文件夹的大小,如果大小大于X字节,则在X天前修改过的文件将被删除 出于测试目的,我将文件夹大小设置为零,因此,脚本应该执行删除过程,但它没有 这个脚本做了我所期望的,我不知道为什么 谢谢你的帮助。 脚本是: #!/bin/sh # 100GB SIZE LIMIT SIZE="0" # check the current size CHECK="`du /media/nssvolumes/TEST/MB

我是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
,以了解它返回的内容,因为它不是一个数字

  • 第二个问题-使用
    []
    需要空格
  • 此外,整数不需要
    “”
  • 在定义$ACTION的值之前,您正在打印它
  • 若脚本并没有更多代码可执行,则不需要调用exit
因此,固定脚本是:

#!/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

好吧,这里我们有很多错误。 假设您的操作系统是Linux,请尝试从命令行运行
du
,以了解它返回的内容,因为它不是一个数字

  • 第二个问题-使用
    []
    需要空格
  • 此外,整数不需要
    “”
  • 在定义$ACTION的值之前,您正在打印它
  • 若脚本并没有更多代码可执行,则不需要调用exit
因此,固定脚本是:

#!/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

感谢脚本:如果大小低于限制,会发生什么?不需要“其他”和“退出”吗?谢谢你的回答。在我们现在的脚本中,if块后面没有代码。所以脚本无论如何都会终止。但是,如果您要编写更多代码,那么您可能需要添加一些“else”或显式的“exit”。感谢脚本:如果大小低于限制,会发生什么?不需要“其他”和“退出”吗?谢谢你的回答。在我们现在的脚本中,if块后面没有代码。所以脚本无论如何都会终止。但是如果您要编写更多的代码,那么您可能需要添加一些“else”或显式的“exit”。