AIX/Unix-删除早于x天的文件

AIX/Unix-删除早于x天的文件,unix,aix,xargs,rm,Unix,Aix,Xargs,Rm,我已经为这件事挣扎了好几天了。这似乎足够简单,但我似乎找不到完成这项(看似)简单任务所需的正确命令或参数。我需要删除超过x天的目录中的通配符文件。我尝试了以下方法,但没有效果,我想知道通配符是否可能是问题所在 find /path/to/files/ -name file_* -mtime +45 -exec rm '{}' + find /path/to/files/ -name file_* -mtime +45 -exec rm {} ;\ find /path/to/files/ -na

我已经为这件事挣扎了好几天了。这似乎足够简单,但我似乎找不到完成这项(看似)简单任务所需的正确命令或参数。我需要删除超过x天的目录中的通配符文件。我尝试了以下方法,但没有效果,我想知道通配符是否可能是问题所在

find /path/to/files/ -name file_* -mtime +45 -exec rm '{}' +
find /path/to/files/ -name file_* -mtime +45 -exec rm {} ;\
find /path/to/files/ -name file_* -mtime +45 | xargs rm

查找工作正常,它列出了正确的文件。删除不起作用。

我意识到以下代码对我来说工作正常:

find /path/to/files/ -name file_* -mtime +45 -exec rm '{}' +

您需要通过保护通配符不受shell扩展的影响,将通配符传递给
find
,并将最终的
取消专用化

find /path/to/files/ -name "file_*" -mtime +45 -exec rm {} \;

对于AIX6.1,需要稍作修改。包括详细解释(合理警告)

找到/path/to/files/-name“files***”-mtime+45-exec

这个点是需要的。对于“文件*”,您将使用您的姓名。“我的文件夹”是一个自定义报告文件夹,名称中包含文件的日期。但所有报告都以“每日”开头。所以我有“每日”。我们每天生成2份报告。特定报告名夹在“每日”和文件名中生成该报告的日期之间。所以每天都有。*都有。我使用“”失败。这可能是AIX6.1所特有的,我们正在使用AIX6.1。AIX命令可能因版本而异


祝你好运

可能
find/path/to/files/-name“file_*”-mtime+45-delete
听起来像是另一个问题(如果问题有点不清楚)。只有在通配符不匹配的目录下运行它。正确而可靠的解决方案是引用通配符,就像@Jean Baptiste的答案一样。