+4 ctime linux
2015-10-28 12:01:01 weixin_33787529 阅读数 0

首先可以使用stat 命令来查询文件的inode信息,其中包括ctime atime mtime

Mtime:文件内容改变,ctime文件的状态改变,如chmod权限等。

调整mtimectime会变。调整ctimemtime不一定变化。

 

1.文件的容易理解:

文件的 Access timeatime 是在读取文件或者执行文件时更改的任何对inode的访问都会使此处改变。
文件的Modified timemtime 是在写入文件时随文件内容的更改而更改的。
文件的 Change timectime 是在写入文件、更改所有者、权限或链接设置时Inode 的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。mtime的改变必然导致ctime的改变。

 

mtime modification time ):在写入文件时随文件内容的更改而更改的时间。我们用ls -l看到的时间,就是mtime

ctime status time):是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的时间。相当于ls -l –time=ctime所看到的时间

atime access time):读取文件或者执行文件时更改的时间。也就是用ls -l –time=atime看到的时间

 

modification time (mtime,修改时间)这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变,用命令ls -l默认显示的就是这个时间:

2status timectime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。

3access timeatime,访问时间):读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。

 

 

2.文件夹的:

文件夹的 Access timeatime 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls一下就不同了)。
文件夹的 Modified timemtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>的结果发生改变mtime就会被刷新。这里可能有人要争论了:我进入dd这个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了……这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除……这就导致了mtime的改变 [Auxten:p]不信你可以用nano修改文件来试验)。
文件夹的 Change timectime 基本同文件的ctime,其体现的是inodechange time

这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意 O(_)O

 

 

 

使用find命令时,常为其中的atime/ctime/mtime感到困惑,一直没彻底弄个明白,今天仔细看了以上两篇文章,总算有所领悟,总结如下:

 

1、含义:

  文件的 Access timeatime 是在读取文件或者执行文件时更改的;
 
文件的 Modified timemtime 是在写入文件时随文件内容的更改而更改的;
 
文件的 Create timectime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。

 

 

2、文件各种事件标记的显示方法

 

 ls -lc filename         列出文件的 ctime 
 ls -lu filename        
列出文件的 atime 
 ls -l filename         
列出文件的 mtime  

3、某网友的实际试验结果:

 

  修改文件,-mtime 改了, -ctime 也会改.
 
访问文件,-atime 改了, -ctime 没变.
 chown, chgrp, chmod,mv,
都会使 -ctime 改变,但不影响 -atime-mtime.
 touch
可以改 -mtime and/or -atime,touch -a 只改访问时间时,-ctime也改了.
 touch -m
改修改时间时,-ctime当然也改了

 

 

改变文件或目录时间命令touch

参数说明

-a :修改atime

-m :修改mtime

-c :仅修改文件的时间(三个时间一起修改),若该文件不存在则不建立新的文件

-d :后面可以接想修改的日期而不用目前的日期,也可以使用 –date=”日期或时间

-t :后面可以接想修改是时间而不用目前的时间,格式为[YYMMDDhhmm]

 

“改变时间(change time)”和“修改时间(modification time)”。

当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那?
改变和修改之间的区别在于是改某个组件的标签还是更改它的内容。如果有人说chmod a-w myfile,那么这是一个改变;如果有人说echo foo >> myfile,那么 
这是一个修改。改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。[文件的修改时间也叫时间标志
(timestamp).]

只要讨论改变时间和修改时间,就不可能不提到“访问时间(access
time)
.访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,当它的改变时间并没有变化(有关文件的信息没有被改变),它的
修改时间也同样如此(文件本身没有被改变)
有时,在许多地方改变时间或者“ctime”被错误地写成“创建时间”,包括某些UNIX参考手册。不要相信他们


转载于:https://blog.51cto.com/23765647/1707192

2014-11-12 11:45:06 wangeen 阅读数 1185

linux使用ctime/mtime/atime 来标记文档时间,


ctime: c不代表create而是change的意思,比如文件内容的修改权限的修改都会改变ctime

mtime:  m是modify的意思,和ctime唯一的区别是权限的修改对其没有影响

atime:   a是文件访问的时间,比如你打开一个文件即使对起没有任何的修改也会对这个时间产生影响


为了方便学习专门写了一个脚本,主要功能就是显示文件的三种时间,你可以选择一个文件进行如下的操作, 看看文件的状态的变化,加深对文本时间的理解。

a) touch ,

b) 打开不修改就关闭,

c) 打开修改之后再关闭,看看文件的当前状态。

#!/usr/bin/env python
import subprocess
import argparse
import os.path,  time


def script(cmd):
    print cmd
    subprocess.call(cmd, shell=True)


if __name__  == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-f",  "--file",  help="the directory for the file")
    args = parser.parse_args()
    if args.file:
        print "start script"
        print " ctime(   change time): %s" % time.ctime(os.path.getctime(args.file))
        print " mtime( last modified): %s" % time.ctime(os.path.getmtime(args.file))
        print " atime(   access time): %s" % time.ctime(os.path.getatime(args.file))
        print "end script"
    else:
        parser.print_help()



2016-05-03 14:14:31 weixin_34247299 阅读数 3

首先可以使用stat 命令来查询文件的inode信息,其中包括ctime atime mtime等


1、文件的atime、ctime、mtime时间的理解

文件的 Access timeatime 是在读取文件或者执行文件时,更改的任何对inode的访问都会使此处改变。
文件的Modified timemtime 是在写入文件时随文件内容的更改而更改的。
文件的 Change timectime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。mtime的改变必然导致ctime的改变。

 1)modification time (mtime,修改时间)这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变,用命令ls -l默认显示的就是这个时间:

2)change time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。相当于ls -l –time=ctime所看到的时间;

3access time (atime,访问时间):读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。也就是用ls -l –time=atime看到的时间

2、文件夹的atime、ctime、mtime

1)文件夹的 Access timeatime 是在读取文件或者执行文件时更改的(我们cd进入目录不会引起atime的改变,但ls一下就不同了)。
2)文件夹的 Modified timemtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>的结果发生改变mtime就会被刷新。这里可能有人要争论了:我进入dd这个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了……这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除……这就导致了mtime的改变 ,不信你可以用nano修改文件来试验)。
文件夹的 Change timectime 基本同文件的ctime,其体现的是inodechange time

这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意 

使用find命令时,常为其中的atime/ctime/mtime感到困惑,一直没彻底弄个明白,今天仔细看了以上两篇文章,总算有所领悟,总结如下:

 

1、含义:

  文件的 Access timeatime 是在读取文件或者执行文件时更改的;
 
 文件的 Modified timemtime 是在写入文件时随文件内容的更改而更改的;
 
 文件的 Create timectime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。

 

 

2、文件各种事件标记的显示方法

 

  ls -lc filename         列出文件的 ctime 
  ls -lu filename        
 列出文件的 atime 
  ls -l filename         
 列出文件的 mtime  

3、某网友的实际试验结果:

 

  修改文件,-mtime 改了, -ctime 也会改.
 
 访问文件,-atime 改了, -ctime 没变.
  chown, chgrp, chmod,mv,
 都会使 -ctime 改变,但不影响 -atime 和-mtime.
  touch
 可以改 -mtime and/or -atime,但 touch -a 只改访问时间时,-ctime也改了.
  touch -m
 改修改时间时,-ctime当然也改了

 

 

改变文件或目录时间命令touch

参数说明

-a :修改atime

-m :修改mtime

-c :仅修改文件的时间(三个时间一起修改),若该文件不存在则不建立新的文件

-d :后面可以接想修改的日期而不用目前的日期,也可以使用 –date=”日期或时间

-t :后面可以接想修改是时间而不用目前的时间,格式为[YYMMDDhhmm]


“改变时间(change time)”和“修改时间(modification time)”。

当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那?
改变和修改之间的区别在于是改某个组件的标签还是更改它的内容。如果有人说chmod a-w myfile,那么这是一个改变;如果有人说echo foo >> myfile,那么 这是一个修改。改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。[文件的修改时间也叫时间标志(timestamp).]

只要讨论改变时间和修改时间,就不可能不提到“访问时间(accesstime).访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,当它的改变时间并没有变化(有关文件的信息没有被改变),它的修改时间也同样如此(文件本身没有被改变)有时,在许多地方改变时间或者“ctime”被错误地写成“创建时间”,包括某些UNIX参考手册。不要相信他们



转载于:https://blog.51cto.com/9678130/1769704

2015-05-25 16:02:45 u010154760 阅读数 340

Linuxatime,mtime,ctime


首先可以使用stat 命令来查询文件的inode信息,其中包括ctime atime mtime

Mtime:文件内容改变,ctime文件的状态改变,如chmod权限等。

调整mtimectime会变。调整ctimemtime不一定变化。

 

1.文件的容易理解:

文件的 Access timeatime 是在读取文件或者执行文件时更改的任何对inode的访问都会使此处改变。
文件的Modified timemtime 是在写入文件时随文件内容的更改而更改的。
文件的 Change timectime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。只要stat出来的内容发生改变就会发生改变。mtime的改变必然导致ctime的改变。

 

mtime modification time ):在写入文件时随文件内容的更改而更改的时间。我们用ls -l看到的时间,就是mtime

ctime status time):是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的时间。相当于ls -l –time=ctime所看到的时间

atime access time):读取文件或者执行文件时更改的时间。也就是用ls -l –time=atime看到的时间

 

modification time (mtime,修改时间)这个时间指的是文件内容修改的时间,而不是文件属性的修改,当数据内容修改时,这个时间就会改变,用命令ls -l默认显示的就是这个时间:

2status time (ctime,状态时间):当一个文件的状态改变时,这个时间就会改变,例如更改了文件的权限与属性等,它就会改变。

3access time (atime,访问时间):读取文件内容时,就会更改这个时间,例如使用cat 去读取/etc/man.config,那么该文件的atime就会改变。

 

 

2.文件夹的:

文件夹的 Access timeatime 是在读取文件或者执行文件时更改的(我们只cd进入一个目录然后cd ..不会引起atime的改变,但ls一下就不同了)。
文件夹的 Modified timemtime 是在文件夹中有文件的新建、删除才会改变(如果只是改变文件内容不会引起mtime的改变,换句话说如果ls -f <directory>(-f表示对输出的文件不进行排序的结果发生改变mtime就会被刷新。这里可能有人要争论了:我进入dd这个文件夹vi了一个文件然后退出,前后ls -f <directory>的结果没有改变但是文件夹的mtime发生改变了……这点请主意vi命令在编辑文件时会在本文件夹下产生一 个".file.swp"临时文件,该文件随着vi的退出而被删除……这就导致了mtime的改变 [Auxten:p]不信你可以用nano修改文件来试验)。
文件夹的 Change timectime 基本同文件的ctime,其体现的是inodechange time

这里还要补充一点:mount -o noatime(mount -o remount,atime / 可以在线重新挂载根目录) 可以选择不记录文件的atime的改变,这意味着什么呢?当你创建了这个文件后这个文件的atime就定格了,除非你用touch或者touch -a强制刷新文件的atime。这样在可以在一定程度上提升文件系统的读写性能,特别是网站这种系统中在fstab里面加上noatime是个好主意 O(_)O

 

 

 

使用find命令时,常为其中的atime/ctime/mtime感到困惑,一直没彻底弄个明白,今天仔细看了以上两篇文章,总算有所领悟,总结如下:

 

1、含义:

  文件的 Access timeatime 是在读取文件或者执行文件时更改的;
 
 文件的 Modified timemtime 是在写入文件时随文件内容的更改而更改的;
 
 文件的 Create timectime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改的。

 

 

2、文件各种事件标记的显示方法

 

  ls -lc filename         列出文件的 ctime 
  ls -lu filename        
 列出文件的 atime 
  ls -l filename         
 列出文件的 mtime  

3、某网友的实际试验结果:

 

  修改文件,-mtime 改了, -ctime 也会改.
 
 访问文件,-atime 改了, -ctime 没变.
  chown, chgrp, chmod,mv,
 都会使 -ctime 改变,但不影响 -atime 和-mtime.
  touch
 可以改 -mtime and/or -atime,但 touch -a 只改访问时间时,-ctime也改了.
  touch -m
 改修改时间时,-ctime当然也改了

 

 

改变文件或目录时间命令touch

参数说明

-a :修改atime

-m :修改mtime

-c :仅修改文件的时间(三个时间一起修改),若该文件不存在则不建立新的文件

-d :后面可以接想修改的日期而不用目前的日期,也可以使用 –date=”日期或时间

-t :后面可以接想修改是时间而不用目前的时间,格式为[YYMMDDhhmm]

 

“改变时间(change time)”和“修改时间(modification time)”。

当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那?
改变和修改之间的区别在于是改某个组件的标签还是更改它的内容。如果有人说chmod a-w myfile,那么这是一个改变;如果有人说echo foo >> myfile,那么 
这是一个修改。改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。[文件的修改时间也叫时间标志
(timestamp).]

只要讨论改变时间和修改时间,就不可能不提到“访问时间(access
time)
.访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,当它的改变时间并没有变化(有关文件的信息没有被改变),它的
修改时间也同样如此(文件本身没有被改变)
有时,在许多地方改变时间或者“ctime”被错误地写成“创建时间”,包括某些UNIX参考手册。不要相信他们。


来源:

http://blog.sina.com.cn/s/blog_5980699f0100zkgz.html

参考:http://www.t086.com/article/4923


下图来自(http://book.51cto.com/art/201204/327489.htm):





2017-07-09 22:56:35 baidu_36831253 阅读数 142

题外话:今天在杭州找了一天的房子,才明白我的工资在杭州快连房租都付不起了。而且找了一天还没找到合适的。找的好累,本来都不想写了。但是作为一名菜鸡,我明白落下一天,就会落下第二天。坚持坚持,我要成为大菜鸡。

今天说的是linux中的ctime,mtime,atime这三种time。

一贯的拿来主义:
转载地址:http://blog.csdn.net/wodeqingtian1234/article/details/53975744
转载地址:http://www.linuxidc.com/Linux/2015-02/113358.htm
要去看原文的可以点击上面链接,比我排版好多了。毕竟我菜鸡。

简称 全称 含义
ctime change time 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改,即文件状态最后一次被改变的时间。
atime access time 是在读取文件或者执行文件时更改,即文件最后一次被读取的时间。
mtime modified time 是在写入文件时随文件内容的更改而更改,是指文件内容最后一次被修改的时间

这几推荐大家记住英文名字,反正前几遍我试图去记含义,记了就忘,并没有效果。还是记英文好


这里我讲的很简单,想要详细的话,可以去 看原文,推荐。

注意:
1、修改是文本本身的内容发生了变化(mtime)
改变是文件的索引节点发生了改变(ctime)
2、如果修改了文件内容,则同时更新ctime和mtime
3、如果只改变了文件索引节点,比如修改权限,则只是改变了ctime

4、如果使用ext3文件系统的时候,在mount的时候使用了noatime参数则不会更新atime的信息,即访问文件之后atime不会被修改,而这个不代表真实情况

小知识:这三个 time stamp 都放在 inode 中。若mtime,atime修改, inode 就一定会改,相应的inode改了,那ctime 也就跟着要改了,之所以在mount option中使用 noatime, 就是不想 file system 做太多的修改, 从而改善读取性能.

抄完别人的,就在抄下别人的代码:

[root@VM_157_218_centos ~]# stat test_shell_dir   #这里看的是一个目录
  File: `test_shell_dir'                          #一切皆文件嘛
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fc01h/64513d    Inode: 491535      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-08 22:12:01.000000000 +0800   #atime
Modify: 2017-07-08 22:46:40.000000000 +0800   #mtime
Change: 2017-07-08 22:46:40.000000000 +0800   #ctime


#我ls下这个目录,理论上我看了目录(目录也是文件哎。)里面的内容呀,但是它的atime没有变。
[root@VM_157_218_centos ~]# ls test_shell_dir 
2017_8_9.log  creat_log_file.sh  test.sh
[root@VM_157_218_centos ~]# stat test_shell_dir 
  File: `test_shell_dir'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fc01h/64513d    Inode: 491535      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-08 22:12:01.000000000 +0800
Modify: 2017-07-08 22:46:40.000000000 +0800
Change: 2017-07-08 22:46:40.000000000 +0800
#你看什么都没变。
#cd 进这个目录,在退出来看看改变了什么。
[root@VM_157_218_centos ~]# stat test_shell_dir 
  File: `test_shell_dir'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fc01h/64513d    Inode: 491535      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-08 22:12:01.000000000 +0800
Modify: 2017-07-08 22:46:40.000000000 +0800
Change: 2017-07-08 22:46:40.000000000 +0800

#可以看到的是,也什么没变。再去试试修改目录名字看看。
[root@VM_157_218_centos ~]# mv test_shell_dir/ test_dir
[root@VM_157_218_centos ~]# stat test_dir/      
  File: `test_dir/'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fc01h/64513d    Inode: 491535      Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-07-08 22:12:01.000000000 +0800
Modify: 2017-07-08 22:46:40.000000000 +0800
Change: 2017-07-09 22:08:01.000000000 +0800  #改变了哦
#这次changetime  ,即ctime改变了。

注意:下面是是抄袭别人的一段话,作者 :阮一峰
看过他的python笔记,挺喜欢他的。、、题外话

一、inode是什么?

理解inode,要从文件储存说起。

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

二、inode的内容
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

inode包含文件的元信息,具体来说有以下内容:
文件的字节数。
文件拥有者的User ID。
文件的Group ID。
文件的读、写、执行权限。
文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
链接数,即有多少文件名指向这个inode。
文件数据block的位置。

目录中保存着它底下文件的文件名以及该文件名对应的inode号。当然目录也是文件,也有自己的inode。

#

其实我个人理解有谬误。
真实的应该是下面抄袭别人中的说明部分,更容易理解。

atime:Access time,是在读取文件或者执行文件时更改,即文件最后一次被读取的时间。
说明: st_atime
Time when file data was last accessed. Changed by the
following functions: creat(), mknod(), pipe(),
utime(2), and read(2).

mtime:Modified time,是在写入文件时随文件内容的更改而更改,是指文件内容最后一次被修改的时间。
说明: st_mtime
Time when data was last modified. Changed by the fol-
lowing functions: creat(), mknod(), pipe(), utime(),
and write(2).

ctime:Change time,是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改,即文件状态最后一次被改变的时间。
说明: st_ctime
Time when file status was last changed. Changed by the
following functions: chmod(), chown(), creat(),
link(2), mknod(), pipe(), unlink(2), utime(), and
write().

不扯了,我得说下的场景。
假如在/tmp下有一大堆文件,上万个,而且文件名都是随机生成的(或者说,我比较笨,根本发现不了规律)。比方说:

[root@VM_157_218_centos test_dir]# cat creat_log_file.sh 
#!/bash/bin
PATH=$PATH
for((i=1;i<=10;i++))
do 
   x=$(date +%N)
   touch /tmp/$x
done
[root@VM_157_218_centos test_dir]# cd /tmp;ls
388680818  392158387  395707895  399200377  402962619  ap_1004.pid   hsperfdata_root   sagent.pid
390383802  393864715  397425697  401034062  404776968  cvm_init.log  net_affinity.log  setRps.log

现在我先把今天生成的文件删了,或者说,你想把除今天以外的文件删了。这里使用find就十分不错。

下面看看find命令
查找文件更新日时在距现在时刻二天以内的文件
find ./ -mtime -2

查找文件更新日时在距现在时刻二天以上的文件
find ./ -mtime +2

查找文件更新日时在距现在时刻一天以上二天以内的文件
find ./ -mtime 2

查找文件更新日时在距现在时刻二分以内的文件
find ./ -mmin -2

查找文件更新日时在距现在时刻二分以上的文件
find ./ -mmin +2

查找文件更新日时在距现在时刻一分以上二分以内的文件
find ./ -mmin 2

查找文件更新时间比文件abc的内容更新时间新的文件
find ./ -newer abc

查找文件访问时间比文件abc的内容更新时间新的文件
find ./ -anewer abc
#########################格式#########################


find ./  -type f -mtime  -1 -print -exec rm -rf {} \;

(1) "." 表示从当前目录开始递归查找

(2) “ -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件

(3) " -type f "查找的类型为文件

(4) "-print" 输出查找的文件目录名

(5) 最主要的是是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号

我要删除今天的文件:

[root@VM_157_218_centos tmp]# find ./  -type f -mtime -1 -print -exec rm -rf {} \;
./395707895
./397425697
./392158387
./399200377
./388680818
./401034062
./402962619
./404776968
./.PATH
./390383802
./393864715
[root@VM_157_218_centos tmp]# ls
ap_1004.pid  cvm_init.log  hsperfdata_root  net_affinity.log  sagent.pid  setRps.log
#删了

睡觉

没有更多推荐了,返回首页