linux下find查找文件后使用xargs和exec进行删除、压缩处理。

mtime 文件内容上次修改时间

  atime 文件被读取或访问的时间

  ctime 文件状态变化时间

  mtime 和 atime 的含义都是很容易理解的,而 ctime 则需要更多的解释。由于 inode 维护着每个文件上的元数据,因此,如果与文件有关的元数据发生变化,则inode 数据也将变化。这可能是由一系列操作引起的,包括创建到文件的符号链接、更改文件权限或移动了文件等。由于在这些情况下,文件内容不会被读取或修改,因此 mtime 和 atime 不会改变,但 ctime 将发生变化。

  这些时间选项都需要与一个值 n 结合使用,指定为 -n、n 或 +n。

  复制代码代码如下:

  N * 24

  +1 表示 1 * 24 +24小时以外..

  +0 表示 0 * 24 +24小时以外

  1 表示 1 * 24 + 24 到 24 之间..

  0 表示 0 * 24 + 24 到 0 之间..

  -1 表示 0 * 24 +24 内,甚至为未来时间...

  1.当前时间24小时—当前时间(昨天-今天)

  #find . -mtime 0

  2.当前时间48小时前–当前时间24小时前(前天-昨天)

  #find . -mtime 1

  3.当前时间48小时前(2天前)

  #find . -mtime +1

  4.当前时间24小时–当前时间(昨天-今天)

  #find . -mtime -1
命令举例:
将该目录下7天以内的日志文件进行打包。
find /apps/spark/app/logs -mtime -7 -print |xargs tar cjf test.tar.gz

将该目录下7天以内的日志文件进行删除,总是保留最新的。
find /apps/spark/app/logs  -mtime -7 -print |xargs rm -rf 
或者使用exec实现:
find /apps/spark/app/logs  -mtime -7 -exec rm {} \;

猜你喜欢

转载自blog.51cto.com/13528748/2119490