删除文件夹中的旧文件

如何在Linux下使用bash删除特定文件夹中超过一年的所有文件?

find /u1/database/prod/arch -type f -mtime +3 -exec rm {} \; vi samefilename #!/bin/bash find /u1/database/prod/arch -type f -mtime +3 -exec rm {} \; 

唯一使用的两个命令是find和rm。

查找查找文件(-type f),这将排除大于3天的目录(-mtime +3)。 它所发现的全部都是rm(-exec rm {} \;)。

你也可以把rm语句放在find之外,这应该是更快的:

find/ u1 / database / prod / arch -type f -mtime +3 | xargs rm

另一种方法,我发现。 很好的具体date。

 touch --date="2010-1-1" x find -not -newer x|xargs rm 

tmpwatch做得很好,例如:

 /usr/sbin/tmpwatch $[24*365] /tmp 

从手册中获取:

tmpwatchrecursion地移除在给定的小时数内未被访问的文件。 通常用于清理临时存放空间(如/ tmp)的目录。

 tmpwatch [-u|-m|-c] [-MUadfqstvx] [--verbose] [--force] [--all] [--nodirs] [--nosymlinks] [--test] [--fuser] [--quiet] [--atime|--mtime|--ctime] [--dirmtime] [--exclude <path>] [--exclude-user <user>] <hours> <dirs> 

tmpwatcher或在Ubuntu的“tmpreaper”。

http://linux.about.com/library/cmd/blcmdl8_tmpwatch.htm

与-c一起使用