Lunix中三个重要时间和find命令

来源:互联网 发布:数据库营销 编辑:程序博客网 时间:2024/06/06 00:36

                              

一、定义

Chang time:简称ctime,一个文件或目录的更改时间。在Linux中,基本上无法知道一个文件的精确创建时间,更改时间是指文件或目录的属性(所有者,权限等等)被修改的时间。如果一个文件需要备份的话,dump命令需要用到ctime,你可以用ls-lc命令查看ctime

Access time:简称atime,一个文件或目录的访问时间。就是一个文件的数据最后一次被访问的时间,例如:显示一个文件的内容或运行一个shell脚本会更新文件的atime,你可以用ls-lu命令查看。

Modify time:简称mtime,一个文件或目录的修改时间。就是文件的目前内容最后被修改的时间,这是一个在长目录列表中显示的时间

二、如何修改

   Linux中,状态命令会显示三次,

例如:$ cat file        文件的atime将更新

      $ chmod g+w file   文件的ctime将更新

      $ echo “File contentss” > file    文件的ctimemtime将更新。

   Linux文件与目录的三种时间状态:

1 mtime:最后一次修改文件或目录的时间

2 ctime:最后一次改变文件或目录(改变的是原数据即属性)的时间,如记录该文件的inode节点被修改的时间。而且chmodchown等命令也能改变该值。

3 atime:最后一次访问文件或目录的时间。

 

 

对于文件,当修改mtimectime必须随着改变,因为文件大小等都是属性,有人说atime也一定会改变,要想修改文件必须先访问,其实是不对的,不访问文件也能修改,如#echo“Thos is a test”>>/etc/issue,issue文件内容会改变,但并没有访问文件,所以atime并没有改变。

 

对于目录,访问一个目录其atime改变,mtimectime不变。修改一个目录,在一个目录下touch一个文件,mtimectime会改变,atime不一定会变。

使用stat命令可以查看三个时间值,例如stat filename,也可以使用ls -l file查看文件修改时间,ls -lc file查看文件状态改动时间,ls -lu file查看文件访问时间。

一、Linux Find命令

Linuxfind命令在⺫⽬目录结构中搜索⽂文件,并执⾏行指定的操作。

Linuxfind命令提供了相当多的查找条件,功能很强⼤大。由于

find具有强⼤大的功能,所以它的选项也很多,其中⼤大部分选项都值

得我们花时间来了解⼀一下。即使系统中含有⺴⽹网络⽂文件系统( NFS)

find命令在该⽂文件系统中同样有效,只你具有相应的权限。 在运

⾏行⼀一个⾮非常消耗资源的find命令时,很多⼈人都倾向于把它放在后台

执⾏行,因为遍历⼀一个⼤大的⽂文件系统可能会花费很⻓长的时间(这⾥里是指

30G字节以上的⽂文件系统)

1.命令格式:

find pathname -options [-print -exec -ok ...]

2.命令功能:

⽤用于在⽂文件树种查找⽂文件,并作出相应的处理(可能访问磁盘)

3.命令参数:

pathname: find命令所查找的⺫⽬目录路径。例如⽤用.来表⽰示当前⺫⽬目

录,⽤用/来表⽰示系统根⺫⽬目录。 

-printfind命令将匹配的⽂文件输出到标准输出。 

-execfind命令对匹配的⽂文件执⾏行该参数所给出的shell

令。相应命令的形式为'command' { } \;,注意{  }\

之间的空格。 

-ok: 和-exec的作⽤用相同,只不过以⼀一种更为安全的模式来执⾏行

该参数所给出的shell命令,在执⾏行每⼀一个命令之前,都会给出提

⽰示,让⽤用户来确定是否执⾏行。

4.命令选项:

-name  按照⽂文件名查找⽂文件。

-perm  按照⽂文件权限来查找⽂文件。

-prune 使⽤用这⼀一选项可以使find命令不在当前指定的⺫⽬目录中查

找,如果同时使⽤用-depth选项,那么-prune将被find命令忽

略。-user  按照⽂文件属主来查找⽂文件。

-group 按照⽂文件所属的组来查找⽂文件。

-mtime -n +n 按照⽂文件的更改时间来查找⽂文件, - n表⽰示⽂文

件更改时间距现在n天以内,+ n表⽰示⽂文件更改时间距现在n天以

前。find命令还有-atime-ctime选项,但它们都和-m time

选项相同。

-nogroup 查找⽆无有效所属组的⽂文件,即该⽂文件所属的组在/

BIT科技 仅限学习交流

etc/groups中不存在。

-nouser  查找⽆无有效属主的⽂文件,即该⽂文件的属主在/etc/

passwd中不存在。

-newer file1 ! file2 查找更改时间⽐比⽂文件file1新但⽐比⽂文

file2旧的⽂文件。

-type 查找某⼀一类型的⽂文件,诸如:

b - 块设备⽂文件。

d - ⺫⽬目录。

c - 字符设备⽂文件。

p - 管道⽂文件。

l - 符号链接⽂文件。

f - 普通⽂文件。

-size n[c]查找⽂文件⻓长度为n块的⽂文件,带有c时表⽰示⽂文件⻓长

度以字节计。

-depth:在查找⽂文件时,⾸首先查找当前⺫⽬目录中的⽂文件,然后再在其

⼦子⺫⽬目录中查找。

-fstype:查找位于某⼀一类型⽂文件系统中的⽂文件,这些⽂文件系统类

型通常可以在配置⽂文件/etc/fstab中找到,该配置⽂文件中包含了

本系统中有关⽂文件系统的信息。

-mount:在查找⽂文件时不跨越⽂文件系统mount点。

-follow:如果find命令遇到符号链接⽂文件,就跟踪⾄至链接所指向

的⽂文件。

-cpio:对匹配的⽂文件使⽤用cpio命令,将这些⽂文件备份到磁带设备

中。

另外,下⾯面三个的区别:

- 建时间来查找⽂文件,-nn天以内,+nn天以前

例⼦子:

1. / l o g s⺫⽬目录中查找更改时间在5⽇日以前的⽂文件并删除它

们:

$ find logs -type f -mtime +5 -exec -ok rm {} \

2. Linux ⽤用find命令查找⽂文件⼤大⼩小为XX的⽂文件的办法

例如:⼀一个⽂文件5556字节,可以这样写

find /root -size -5557c -size +5555c -exec ls -ld {} \;

即查找⼤大于5555字节⼩小于5557字节的⽂文件,以上查找的是/root

目录

find /root -size -500K -size +50K -exec ls -ld {} \;

查找 ⼩小于500K,⼤大于50K的⽂文件

下面我们通过几组例子验证一下find指令:

   

find / -name code -print

找名字为code的并打印

 

 

 

find /home/shanying007/code -name test

找名字为test的文件

 

find /home/shanying007/code -group shanying007

找所属组为shanying007的文件

 

 

 


0 0
原创粉丝点击