Linux 下文件

 

 Linux下文件的三个时间(Atime,Mtime,Ctime)

[root@node ~]# stat install.log
  File: `install.log'
  Size: 58137         Blocks: 128        IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 524291      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-22 16:13:59.597460379 +0800
Modify: 2014-10-20 05:03:26.266999759 +0800
Change: 2014-10-20 05:03:37.875999758 +0800

可以从上图看到系统为我们保存了这个的三个时间,分别是Access time、Modify time、Change time,也就是访问时间、修改时间和状态时间。

那么与前面所说的windows下做一个对比:

在windows下,一个文件有:创建时间、修改时间、访问时间。
而在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态时间

解释:
>修改时间:文件的内容被最后一次修改的时间,我们经常用的ls -l命令显示出来的文件时间就是这个时间,当用vim对文件进行编辑之后保存,它的mtime就会相应的改变; >访问时间:对文件进行一次读操作,它的访问时间就会改变。例如像:cat、more等操作,但是像之前的state还有ls命令对atime是不会有影响的; >状态时间:当文件的状态被改变的时候,状态时间就会随之改变,例如当使用chmod、chown等改变文件属性的操作是会改变文件的ctime的。

 

find命令查询文件

列出当前目录下包含sysctl.conf的文件名称

[root@node ~]# find . -name “sysctl.conf” -exec ls -al {} \; -rw-r--r-- 1 root root 1234 Jul 15 2016 /etc/sysctl.conf

列出修改日期三天外文件并删除修改日期7天外的文件
[root@node ~]find -name "*" -type f -mtime +3 -exec ls -al {} \;
[root@node ~]find -name "*" -type f -mtime +7 -exec rm -rf {} \;

“-exec”表示每找到一个文件,则执行“-exec”和“\;”之间的命令。“\;”是格式分隔符,和前面的命令之间有一个空格

命令“rm {}”表示删除{}变量代表的文件,变量{}保存着当前匹配的文件名。

-mtime解释:

-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
这里-mtime +1 为什么是48小时以外,而不是24小时以外呢,因为n只能是整数,比1大的下一个整数是2,所以是48小时以外的

下面来看 -mtime 1的输出结果:
[root@node ~]$ find ./* -name "*.arc" -mtime 1 -exec ls -l {} \;  
说明:

-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件


[root@node ~]$ find ./* -name "*.arc" -mtime 0 -exec ls -l {} \; 
说明:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件

[root@node ~]$ find ./* -name "*.arc" -mtime -1 -exec ls -l {} \; 
解释:
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

 

date

获取当前日期

[root@node ~]# export DATE=`date +"%Y%m%d%H"`
[root@node ~]# echo $DATE
2014071309

 

posted @ 2018-07-13 08:54  jiayou64  阅读(187)  评论(0编辑  收藏  举报