每周日 20 点删除目录中除一个文件之外的所有文件

每周日 20 点删除目录中除一个文件之外的所有文件

我使用此选项

在 autodelete.sh 中

rm -rf /home/user/Public/!("VIP Folder")

在 Crontab 中

0 20 * * 0 /home/autodelete.sh

但它不起作用。

答案1

!(pattern)语法是 bash 扩展通配符功能的一部分,默认情况下不启用此功能。您需要确保您的脚本使用的是bash而不是sh,并且需要启用相关选项。因此,请让您的autodelete.sh文件看起来像这样:

#!/bin/bash

shopt -s extglob
rm -rf /home/user/Public/!("VIP Folder")

在这种情况下,引号是可选的,但也不会造成任何损害,而且是一个好习惯。

此外,您的 crontab 行将每天 20:00 运行此命令,而不仅仅是每个星期日。要在星期日 20:00 运行它,请使用:

0 20 * * 0 /home/autodelete.sh

相关内容