linux下find命令和文件的三种时间

    Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。

1.命令参数:
 
  pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
  -print: find命令将匹配的文件输出到标准输出。 
  -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ {  } \;,注意{   }和\;之间的空格。 
  -ok:   和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在  执行每一个命令之前,都会给出提示,让用户来确定是否执行。

2.命令选项:
 
-name   按照文件名查找文件。
-perm   按照文件权限来查找文件。
-prune  使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用

-depth选项,那么-prune将被find命令忽略。
-user   按照文件属主来查找文件。
-group  按照文件所属的组来查找文件。
-mtime -n +n  按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup  查找无有效所属组的文件,即该文件所属的组在/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命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:
 
-amin n   查找系统中最后N分钟访问的文件
-atime n  查找系统中最后n*24小时访问的文件
-cmin n   查找系统中最后N分钟被改变文件状态的文件
-ctime n  查找系统中最后n*24小时被改变文件状态的文件
-mmin n   查找系统中最后N分钟被改变文件数据的文件
-mtime n  查找系统中最后n*24小时被改变文件数据的文件

#-print 将查找到的文件输出到标准输出
#-exec    command    {} \;       -----将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户 

==================================================== -name    filename   

            #查找名为filename的文件
-perm                         #按执行权限来查找
-user     username              #按文件属主来查找
-group groupname              #按组来查找
-mtime    -n +n                 #按文件更改时间来查找文件,-n指n天以内,

+n指n天以前
-atime     -n +n                #按文件访问时间来查GIN: 0px">-perm 
      

                   #按执行权限来查找
-user     username              #按文件属主来查找
-group groupname              #按组来查找
-mtime    -n +n                 #按文件更改时间来查找文件,-n指n天以内,

+n指n天以前
-atime     -n +n                #按文件访问时间来查找文件,-n指n天以内,

+n指n天以前 
-ctime     -n +n                #按文件创建时间来查找文件,-n指n天以内,

+n指n天以前 
-nogroup                      #查无有效属组的文件,即文件的属组

在/etc/groups中不存在
-nouser                       #查无有效属主的文件,即文件的属主

在/etc/passwd中不存
-newer    f1 !f2                找文件,-n指n天以内,+n指n天以前 
-ctime     -n +n                #按文件创建时间来查找文件,-n指n天以内,

+n指n天以前 
-nogroup                      #查无有效属组的文件,即文件的属组

在/etc/groups中不存在
-nouser                       #查无有效属主的文件,即文件的属主

在/etc/passwd中不存
-newer    f1 !f2                #查更改时间比f1新但比f2旧的文件
-type      b/d/c/p/l/f          #查是块设备、目录、字符设备、管道、符号

链接、普通文件
-size       n[c]                #查长度为n块[或n字节]的文件
-depth                        #使查找在进入子目录前先行查找完本目录
-fstype                       #查更改时间比f1新但比f2旧的文件
-mount                        #查文件时不跨越文件系统mount点
-follow                       #如果遇到符号链接文件,就跟踪链接所指的文

件
-cpio                         #对匹配的文件使用cpio命令,将他们备份到磁

带设备中
-prune                        #忽略某个目录 

 3.linux下find命令的用法
 1. 基本用法:
     1.find / -name 文件名  
       find ver1.d ver2.d -name ‘*.c‘ -print    查找ver1.d,ver2.d *.c文件并打印 
     2.find . -type d -print   从当前目录查找,仅查找目录,找到后,打印路径名。可用于打印目录结构。
     
2. 无错误查找:

      find / -name access_log 2 >/dev/null
      
3. 按尺寸查找:

      find / -size 1500c (查找1,500字节大小的文件,c表示字节)
      find / -size +1500c (查找大于1,500字节大小的文件,+表示大于)    
      find / -size +1500c (查找小于1,500字节大小的文件,-表示小于) 
         
4. 按时间:

      find / -amin n 最后n分钟 
      find / -atime n 最后n天
      find / -cmin n 最后n分钟改变状态
      find / -ctime n 最后n天改变状态
      
5. 其它:

      find / -empty 空白文件、空白文件夹、没有子目录的文件夹
      find / -false 查找系统中总是错误的文件
      find / -fstype type 找存在于指定文件系统的文件,如type为ext2
      find / -gid n 组id为n的文件
      find / -group gname 组名为gname的文件
      find / -depth n 在某层指定目录中优先查找文件内容
      find / -maxdepth levels 在某个层次目录中按递减方式查找

6. 逻辑

      -and 条件与 -or 条件或

7. 查找字符串

      find . -name ‘*.html‘ -exec grep ‘mailto:‘{} 

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

mtime:文件最近内容修改的时间
ctime:文件最近属性和权限修改的时间
atime:文件最近被访问的时间
 
1.ls -l filename(ls默认显示的是mtime)
 
  -rw-rw-r-- 1 lawrance lawrance 27 Oct  5 02:09 filename
 
2.ls -l --time=ctime filename 

  -rwxr-xr-x 1 lawrance lawrance 27 Oct  6 02:50 filename
 
3.ls -l --time=atime filename 

  -rw-rw-r-- 1 lawrance lawrance 27 Oct  6 02:30 filename

另外,可以格式化输出文件的三种时间,如:

1.find . -name file -printf "%AY-%Am-%Ad %AH:%AM:%AS"
2.find . -name file -printf "%TY-%Tm-%Td %TH:%TM:%TS"
3.find . -name file -printf "%CY-%Cm-%Cd %CH:%CM:%CS"
时间: 2024-10-14 12:35:07

linux下find命令和文件的三种时间的相关文章

Linux下文件的三种时间标记:访问时间、修改时间、状态改动时间 (转载)

在windows下,一个文件有:创建时间.修改时间.访问时间. 而在Linux下,一个文件也有三种时间,分别是:访问时间.修改时间.状态改动时间. 两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后, 状态就没有改动过,那么状态改动时间=建立时间;如果文件建立后,没有被读取过,那么访问时间=建立时间,因为不好判断文件是否被改过.读过.其状态是否 变过,所以判断文件的建立时间基本上能为不可能. 如何查一个文

hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. vi /etc/profile 在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_H

linux中文件的三种时间

Linux 中文件的三种时间 文件的三种时间: 1.        mtime 文件的修改时间 文件的内容发生改变.包括文件中空格数目.字符的变动再复原等这些看上去并不影响有效数据内容的操作. 有意的改变时间戳.Eg:使用touch –m –t 2016666666666fileName这样的命令故意改变mtime. 2.        ctime 文件的改变时间 文件的"属性"改变.Eg:文件的权限.属主.属组等. mtime发生改变和人为的改变atime的情况,Eg:touch –

Linux中atime、mtime、ctime三种时间状态

atime:access time 最近一次访问时间 mtime:modify time 最近一次修改时间(指的是修改文件内容,数据内容) ctime:change time 最近一次属性改变时间,inode节点信息被修改时间(大小.属组.属主.权限) touch.chmod.chown都会改变该值 1.当mtime改变时,ctime必须改变,因为文件大小等属性改变 2.mtime改变时,atime不一定改变. #echo "this is a test" >> /etc/

linux下touch命令修改文件时间戳

linux的touch命令用来修改文件时间戳,或者新建一个不存在的文件. 上图中,access.modify.change分别是访问时间.修改时间.改变时间,即为文件的时间戳. 1.命令格式: touch [选项]... 文件名... 2.命令参数: -a   或--time=atime或--time=access或--time=use  只更改存取时间. -c   或--no-create  不建立任何文档. -d  使用指定的日期时间,而非现在的时间. -f  此参数将忽略不予处理,仅负责解

Linux的find命令详解和三个时间

这次解释一下三个Linux文件显示的三个时间,然后展示一下find命令的各个功能 在linux操作系统中,每个文件都有很多的时间参数,其中有三个比较主要,分别是ctime,atime,mtime modification time(mtime): 当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别 status time(ctime) 当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,给我的感觉更

linux文件的三种时间

我个人的linux系统使用的是ubuntu 一.linux的文件时间分为三种: 1).文件最近内容修改时间--mtime 2).文件最近权限和属性修改时间--ctime 3).文件最近被访问时间--atime 二. 打开vm,运行linux系统,在工作目录底使用touch命令创建一个文件,如图: 测试当前系统时间 使用$date 命令 如图: 同时说一下,系统的时间更改 $ date -d YY/mm/dd  更改系统的日期 $ date -s HH:mm:ss  更改系统的时间 可能会报错,如

linux下(fdisk,gdisk,parted)三种分区工具比较

1 2种分区结构简介 MBR分区 硬盘主引导记录MBR由4个部分组成 主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序. 出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节. 分区表(DPT,Disk Partition Table)含4个分区项,偏移地 址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1.分区项2.分区项3.分区项4 结束标志字,偏移地址01FE--01FF的2个字节值

Linux - 文件的三种时间之atime、ctime、mtime的区别和简单用法

在Linux中,文件或者目录中有三个时间属性 atime ctime mtime 简名 全名 中文 作用 atime Access Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Change Time 变化时间 最后一次改变文件(属性或权限)或者目录(属性或权限)的时间 mtime Modify Time 修改时间 最后一次修改文件(内容)或者目录(内容)的时间 如何查看atime.ctime.mtime stat filename 什么命令会修改atime.ctime.