BASH删除脚本的文件期限

BASH删除脚本的文件期限,bash,find,Bash,Find,我是一个脚本新手。我正在尝试为我的Ubunutu 10.04服务器编写一个简单的bash脚本,以删除不同文件夹中超过30天&超过一年的文件夹中的存档。它们可以是两个不同的命令行,因为我将把它们放在不同的脚本中 我刚开始尝试以下方法,但根本不起作用: # find ~/addon_backups/202 -name 202adata* -maxdepth 0 -ctime +30 及 我分别得到以下信息: find: paths must precede expression: 202adata

我是一个脚本新手。我正在尝试为我的Ubunutu 10.04服务器编写一个简单的bash脚本,以删除不同文件夹中超过30天&超过一年的文件夹中的存档。它们可以是两个不同的命令行,因为我将把它们放在不同的脚本中

我刚开始尝试以下方法,但根本不起作用:

# find ~/addon_backups/202 -name 202adata* -maxdepth 0 -ctime +30

我分别得到以下信息:

find: paths must precede expression: 202adata_010213.tar.gz
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]


我尝试了多种变体,但显然我遗漏了一些东西。非常感谢您的帮助。

您必须将参数引用到-name,这样shell就不会解释它(自动指出):

还请注意,您需要使用
-mtime
而不是
-ctime
-maxdepth 1
而不是0,并且您可以使用
-exec rm(){}+
删除:

find ~/addon_backups/202/ME -name "*.tar.gz" -maxdepth 1 -mtime +365 -exec rm {} +
或者更简单地说:

find ~/addon_backups/202/ME/*.tar.gz -mtime +365 -exec rm {} +

[这][1]似乎回答了您的问题:[1]:
find ~/addon_backups/202/ME -name "*.tar.gz" -maxdepth 0 -ctime +365
find ~/addon_backups/202/ME -name "*.tar.gz" -maxdepth 1 -mtime +365 -exec rm {} +
find ~/addon_backups/202/ME/*.tar.gz -mtime +365 -exec rm {} +