我有一个名为repository的目录,它有许多文件和子目录。我想找到自过去14天以来未被修改的文件和目录,以便我可以删除这些文件和目录。 我写了这个脚本,但它只提供了目录名
#!/bin/sh
M2_REPO=/var/lib/jenkins/.m2/repository
echo $M2_REPO
OLDFILES=/var/lib/jenkins/.m2/repository/deleted_artifacts.txt
AGE=14
find "${M2_REPO}" -name '*' -atime +${AGE} -exec dirname {} \; >> ${OLDFILES}
答案 0 :(得分:1)
find /path/to/files* -mtime +5 -exec rm {} \;
请注意,rm,{}和\;
之间有空格解释
第一个参数是文件的路径。这可以是路径,目录或通配符,如上例所示。我建议使用完整路径,并确保在没有exec rm的情况下运行命令,以确保获得正确的结果。
第二个参数-mtime用于指定文件的旧天数。如果输入+5,则会找到超过5天的文件。
第三个参数-exec允许您传入诸如rm之类的命令。 {} \;最后需要结束命令。
这应该适用于Ubuntu,Suse,Redhat或几乎任何版本的Linux。
答案 1 :(得分:0)
您可以使用find -delete
标志来删除文件。只需注意将其放在命令的末尾,以便首先应用时间过滤器。
您可以先列出命令找到的文件:
find "${M2_REPO}" -depth -mtime +${AGE} -print
-d
标志使find执行搜索深度优先,这是-delete
命令隐含的。
如果您喜欢结果,请将打印更改为删除:
find "${M2_REPO}" -mtime +${AGE} -delete