您的位置:首页 > 运维架构 > Linux

Linux基础-0001-文件查找:locate与find

2017-11-02 16:26 260 查看

一、文件查找

即为在文件系统上查找符合条件的文件


文件查找方式

文件查找方式,分为locate和find两种主要方式

1.1 locate方式

locate的查找方式是非实时的,是提前将系统中相关数据抽取出来作为一个数据库索引。也叫作基于索引进行的非实时查找;

locate依赖于一个事前已经存在的数据库,也就是他依赖于一个索引工具,该命令在运行时需要后台索引的数据库作为支撑;

locate,在ubuntu 12.04,3.2.0-23-generic内核版本中,它依赖的updatedb准备数据库,其中准备的数据库数据在/var/lib/mlocate/mlocate.db中,系统会自动有定时任务对该数据进行更新,在/etc/cron.daily目录有一个名为mlocate的可执行shell脚本:

#! /bin/bash

set -e

[ -x /usr/bin/updatedb.mlocate ] || exit 0

if which on_ac_power >/dev/null 2>&1; then
ON_BATTERY=0
on_ac_power >/dev/null 2>&1 || ON_BATTERY=$?
if [ "$ON_BATTERY" -eq 1 ]; then
exit 0
fi
fi

##

LOCKFILE="/var/lib/mlocate/daily.lock"

trap "rm -f $LOCKFILE" EXIT

if [ -e "$LOCKFILE" ]; then
echo >&2 "Warning: $LOCKFILE present, not running updatedb."
exit 1
else
touch "$LOCKFILE"
fi

##

# See ionice(1)
if [ -x /usr/bin/ionice ] &&
/usr/bin/ionice -c3 true 2>/dev/null; then
IONICE="/usr/bin/ionice -c3"
fi

$IONICE /usr/bin/updatedb.mlocate


上述脚本就是crontab定时任务中每日定时任务的执行脚本。

也可以手工出发更新:sudo updatedb

总结:

①locate是一个读取数据库数据的查找工具,依赖于updatedb生成的数据;

②updatedb在ubuntu12.04
4000
中,数据库位置是在/var/lib/mlocate/mlocate.db;

③updatedb对数据的更新是每日更新一次,在/etc/cron.daily目录下的mlocate的shell脚本更新,可以④sudo updatedb方式进行手工更新;

⑤locate依赖于数据库,查询效率高,但是查询不具备实时性;

⑥更新数据库,索引构建过程需要遍历整个根文件系统,会相当消耗系统资源,不建议在系统繁忙的时候进行自动或者手动更新,避免系统宕机;

⑦工作特点:查找速度快;模糊查找,查找对象只要符合查找条件都会显示;非实时查找。

locate的man手册说明:

locate reads one or more databases prepared by updatedb(8) and writes file names matching at least one of the PATTERNs to standard output, one per line.

locate读取由updatedb准备的一个或者多个数据库,并将至少一个PATTERN匹配的文件名称写入标准输出,每行一个。

locate的用法:

locate [OPTION]... PATTERN...

1.2 find方式

search for files in a directory hierarchy,搜索目录层次结构中的文件

find的查找方式是实时的,根据我们指定的路径对每一个文件进行查找,是一种实时的查找。工作方式是通过遍历指定路径下的文件系统完成文件查找。

工作特点

查找速度相对于locate略慢;

精确查找,是根据文件的名称而不是路径进行查找;

实时查找,不依赖任何外部的数据资源;

使用规范

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

或者:

find [OPTION]... [查找路径][查找条件][处理动作]

查找路径:制定具体的目标路径,可以使用多个路径,默认为当前目录

查找条件:即为指定查找标准,可以根据文件名、大小、类型、权限等标准进行查找,默认查找条件为无条件即为制定路径下的所有文件

处理动作:指的是对符合条件的文件做什么操作,默认动作为输出至屏幕(标准输出)

①查找条件

根据文件名进行查找:

 -name “文件名称”:支持使用glob通配符机制,包括* ? [] [^]等

-iname "文件名称":不区分字母大小写,同样支持glob通配符机制

-regex "PATTEN":支持使用正则表达式,以PATTERM去匹配整个文件路径字符串,而不仅仅是文件名称;

直接执行find表示直接显示当前目录下的所有文件(包括目录下的文件),包括隐藏文件

根据属主、属组进行查找:

-user USERNAME:查找属主为指定用户的文件

-group GROUPNAME:查找属组为指定属组的文件

-uid USERID:查找属主为指定的UID号的文件

-gid GROUPID:查找属组为指定的GID号的文件

-nouser USERNAME:查找已经被删除的用户的文件即为没有属主的文件

-nogroup GROUPNAME:查找没有属组的文件

查找指定UID的某个路径下的文件:

root@RealServer01:/etc/heartbeat# find /home -uid 1000 -ls
5481    4 drwxr-xr-x   3 mangguo  mangguo      4096 Mar 19  2016 /home/mangguo
5485    4 drwx------   2 mangguo  mangguo      4096 Mar 17  2016 /home/mangguo/.cache
5486    0 -rw-r--r--   1 mangguo  mangguo         0 Mar 17  2016 /home/mangguo/.cache/motd.legal-displayed
5482    4 -rw-r--r--   1 mangguo  mangguo       220 Mar 17  2016 /home/mangguo/.bash_logout
5487    4 -rw-------   1 mangguo  mangguo        40 Mar 19  2016 /home/mangguo/.bash_history
5483    4 -rw-r--r--   1 mangguo  mangguo       675 Mar 17  2016 /home/mangguo/.profile
5484    4 -rw-r--r--   1 mangguo  mangguo      3486 Mar 17  2016 /home/mangguo/.bashrc

查找指定属主、属组的某个路径下的文件:

root@RealServer01:/etc/heartbeat# find . -user root -ls
923113    4 drwxr-xr-x   4 root     root         4096 Nov  2 17:34 .
923114    4 -rw-r--r--   1 root     root         2082 Apr 27  2012 ./shellfuncs
923121    4 -rwxr-xr-x   1 root     root          745 Apr  4  2012 ./harc
923153    0 -rw-r--r--   1 root     mangguo         0 Nov  2 17:34 ./test.txt
923115    4 drwxr-xr-x   2 root     root         4096 Nov  2 16:01 ./rc.d
923119    4 -rwxr-xr-x   1 root     root         1383 Apr  4  2012 ./rc.d/ask_resources
923118    4 -rwxr-xr-x   1 root     root         1088 Apr  4  2012 ./rc.d/ip-request-resp
923120    4 -rwxr-xr-x   1 root     root          133 Apr  4  2012 ./rc.d/status
923117    4 -rwxr-xr-x   1 root     root         1313 Apr  4  2012 ./rc.d/ip-request
923116    4 -rwxr-xr-x   1 root     root          373 Apr  4  2012 ./rc.d/hb_takeover
923122    4 drwxr-xr-x   2 root     root         4096 Nov  2 16:01 ./resource.d
923129    4 -rwxr-xr-x   1 root     root         3424 Apr  4  2012 ./resource.d/ids
923132    4 -rwxr-xr-x   1 root     root         1294 Apr  4  2012 ./resource.d/WAS
923143    4 -rwxr-xr-x   1 root     root          951 Apr  4  2012 ./resource.d/ICP
923134    4 -rwxr-xr-x   1 root     root         1166 Apr  4  2012 ./resource.d/WinPopup
923144    4 -rwxr-xr-x   1 root     root         1091 Apr  4  2012 ./resource.d/LinuxSCSI
923137    4 -rwxr-xr-x   1 root     root          666 Apr  4  2012 ./resource.d/Xinetd
923124    4 -rwxr-xr-x   1 root     root         1165 Apr  4  2012 ./resource.d/IPv6addr
923127    4 -rwxr-xr-x   1 root     root         1903 Apr  4  2012 ./resource.d/Filesystem
923128    4 -rwxr-xr-x   1 root     root         1012 Apr  4  2012 ./resource.d/ServeRAID
923123    4 -rwxr-xr-x   1 root     root         1825 Apr  4  2012 ./resource.d/IPaddr2
923125    4 -rwxr-xr-x   1 root     root          828 Apr  4  2012 ./resource.d/apache
923130    4 -rwxr-xr-x   1 root     root          805 Apr  4  2012 ./resource.d/AudibleAlarm
923133    4 -rwxr-xr-x   1 root     root          790 Apr  4  2012 ./resource.d/LVM
923149    4 -rwxr-xr-x   1 root     root         1391 Apr  4  2012 ./resource.d/IPsrcaddr
923131    4 -rwxr-xr-x   1 root     root         1563 Apr  4  2012 ./resource.d/SendArp
923146    4 -rwxr-xr-x   1 root     root          760 Apr  4  2012 ./resource.d/db2
923141    4 -rwxr-xr-x   1 root     root         1125 Apr  4  2012 ./resource.d/MailTo
923151    4 -rwxr-xr-x   1 root     root         2325 Apr  4  2012 ./resource.d/hto-mapfuncs
923139    4 -rwxr-xr-x   1 root     root          742 Apr  4  2012 ./resource.d/portblock
923136    4 -rwxr-xr-x   1 root     root         2926 Apr  4  2012 ./resource.d/OCF
923147    4 -rwxr-xr-x   1 root     root          910 Apr  4  2012 ./resource.d/Delay
923135    4 -rwxr-xr-x   1 root     root         2273 Apr  4  2012 ./resource.d/IPaddr
923126    4 -rwxr-xr-x   1 root     root         1160 Apr  4  2012 ./resource.d/Raid1
923152    4 -rw-r--r--   1 root     root          692 Apr  4  2012 ./README.config
root@RealServer01:/etc/heartbeat# find . -group mangguo -ls
923153    0 -rw-r--r--   1 root     mangguo         0 Nov  2 17:34 ./test.txt


查找指定属组对应GID的某个路径下的文件:

root@RealServer01:/etc/heartbeat# find /home -uid 1000 -ls
5481    4 drwxr-xr-x   3 mangguo  mangguo      4096 Mar 19  2016 /home/mangguo
5485    4 drwx------   2 mangguo  mangguo      4096 Mar 17  2016 /home/mangguo/.cache
5486    0 -rw-r--r--   1 mangguo  mangguo         0 Mar 17  2016 /home/mangguo/.cache/motd.legal-displayed
5482    4 -rw-r--r--   1 mangguo  mangguo       220 Mar 17  2016 /home/mangguo/.bash_logout
5487    4 -rw-------   1 mangguo  mangguo        40 Mar 19  2016 /home/mangguo/.bash_history
5483    4 -rw-r--r--   1 mangguo  mangguo       675 Mar 17  2016 /home/mangguo/.profile
5484    4 -rw-r--r--   1 mangguo  mangguo      3486 Mar 17  2016 /home/mangguo/.bashrc

查找某个路径下无属主、属组的文件:

mangguo@RealServer01:/tmp$ ll
total 24
drwxrwxrwt  5 root    root    4096 Nov  2 17:46 ./
drwxr-xr-x 23 root    root    4096 Mar 17  2016 ../
-rw-r--r--  1 root    root       0 Oct 30 16:37 filelog
drwxrwxrwt  2 root    root    4096 Sep  7 11:40 .ICE-unix/
-rw-r--r--  1 mangguo mangguo   24 Nov  2 17:46 issue
drwx------  2 root    root    4096 Oct 26 15:54 ssh-ZYcjd58665/
drwxrwxrwt  2 root    root    4096 Sep  7 11:40 .X11-unix/
mangguo@RealServer01:/tmp$ ll  issue
-rw-r--r-- 1 mangguo mangguo 24 Nov  2 17:46 issue
mangguo@RealServer01:/tmp$ exit
exit
root@RealServer01:/home# userdel mangguo
root@RealServer01:/home# ll /tmp
total 24
drwxrwxrwt  5 root root 4096 Nov  2 17:46 ./
drwxr-xr-x 23 root root 4096 Mar 17  2016 ../
-rw-r--r--  1 root root    0 Oct 30 16:37 filelog
drwxrwxrwt  2 root root 4096 Sep  7 11:40 .ICE-unix/
-rw-r--r--  1 1000 1000   24 Nov  2 17:46 issue
drwx------  2 root root 4096 Oct 26 15:54 ssh-ZYcjd58665/
drwxrwxrwt  2 root root 4096 Sep  7 11:40 .X11-unix/
root@RealServer01:/home# id mangguo
id: mangguo: No such user
root@RealServer01:/home# find /tmp -nouser -ls
1056795    4 -rw-r--r--   1 1000     1000           24 Nov  2 17:46 /tmp/issue
root@RealServer01:/home# find /tmp -nogroup -ls
1056795    4 -rw-r--r--   1 1000     1000           24 Nov  2 17:46 /tmp/issue


根据文件类型查找:

-type TYPE,TYPE可以有如下选项:

f:普通文件

d:目录文件

l:符号链接文件

s:套接字文件

b:块设备文件

c:字符设备文件

p:管道文件

组合条件:

与:-a

或:-o

非:-not,!

根据文件大小进行查找:

-size [+|-]#UINIT,#表示具体一个数值,UNIT表示的是数值对应的单位,单位包括:k,M,G

find /home/ -size 3k -ls表示在/home/目录下查找(3-1,3]即为大于2并且小于等于3范围单位是k的文件。

find /home/ -size -3k -ls表示在/home/目录下查找[0,3-1]即为大于等于0并且小于等于2这个范围单位是k的文件。

find /home/ -size +3k -ls表示在/home/目录下查找(3,+无穷)即为大于3至正无穷这个范围单位是k的文件

根据时间戳:

以天为单位:

-atime [+|-][NUM],NUM表示的区间是[NU
c759
M,NUM+1),+表示的区间是[NUM+1,正无穷],-表示的区间是[0,NUM)

-atime 1表示的是大前天的这个时候的时刻开始,周期是一天的时候创建的文件,例如现在是2017.11.03 12:00,那么-atime 1表示的是一天前也就是

2017.11.02 12:00 - 2017.11.03 12:00这个时间段创建的文件。

root@RealServer01:/tmp# touch -a -t 201711021500.00 aa.txt
root@RealServer01:/tmp# touch -a -t 201711021459.00 bb.txt
root@RealServer01:/tmp# touch -a -t 201711021800.00 cc.txt
root@RealServer01:/tmp# touch -a -t 201711031800.00 dd.txt

root@RealServer01:/tmp# find /tmp/ -atime 1 -ls #查找时间段是[0,1)
1056799    0 -rw-r--r--   1 root     root            0 Nov  3 15:14 /tmp/bb.txt
1056798    0 -rw-r--r--   1 root     root            0 Nov  3 15:13 /tmp/aa.txt
root@RealServer01:/tmp# stat aa.txt
File: `aa.txt'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056798     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-02 15:00:00.000000000 +0800
Modify: 2017-11-03 15:13:50.222133495 +0800
Change: 2017-11-03 15:13:50.222133495 +0800
Birth: -
root@RealServer01:/tmp# stat bb.txt
File: `bb.txt'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056799     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-02 14:59:00.000000000 +0800
Modify: 2017-11-03 15:14:21.006133549 +0800
Change: 2017-11-03 15:14:21.006133549 +0800
Birth: -
root@RealServer01:/tmp# stat cc.txt
File: `cc.txt'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056800     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-02 18:00:00.000000000 +0800
Modify: 2017-11-03 15:14:55.222129035 +0800
Change: 2017-11-03 15:14:55.222129035 +0800
Birth: -
root@RealServer01:/tmp# stat dd.txt
File: `dd.txt'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056801     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-03 18:00:00.000000000 +0800
Modify: 2017-11-03 15:15:14.746135262 +0800
Change: 2017-11-03 15:15:14.746135262 +0800
Birth: -
root@RealServer01:/tmp# date
Fri Nov  3 15:16:23 CST 2017
当前时间段是2017.11.03 15:16,四个文件的时间分别是:
aa.txt  2017-11-02 15:00:00
bb.txt   2017-11-02 14:59:00
cc.txt   2017-11-02 18:00:00
dd.txt   2017-11-03 18:00:00
使用find /tmp/ -atime 1 -ls,这就意味着该命令查找创建时间的范围是:
2017-11-02 15:16至 2017-11-03 15:16
命令后的查找结果是:aa.txt bb.txt


-mtime [+|-][数值]

-ctime [+|-][数值]

以分钟为单位:

-amin [+|-][数值]

-mmin [+|-][数值]

-cmin [+|-][数值]

创建两个文件并制定文件的atime时间
root@RealServer01:/tmp# touch -a -t 201711021111.00 b.txt
root@RealServer01:/tmp# touch -a -t 201711011111.00 a.txt


当前时间
root@RealServer01:/tmp# date
Fri Nov  3 15:01:22 CST 2017


查看a.txt和b.txt的文件相关时间
root@RealServer01:/tmp# stat a.txt
File: `a.txt'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056797     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-01 11:11:00.000000000 +0800
Modify: 2017-11-03 14:58:43.574106114 +0800
Change: 2017-11-03 14:58:43.574106114 +0800
Birth: -
root@RealServer01:/tmp# stat b.txt
File: `b.txt'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056796     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-02 11:11:00.000000000 +0800
Modify: 2017-11-03 14:58:37.994105179 +0800
Change: 2017-11-03 14:58:37.994105179 +0800
Birth: -
root@RealServer01:/tmp# find /tmp/ -atime 1 -ls 
1056796    0 -rw-r--r--   1 root     root            0 Nov  3 14:58 /tmp/b.txt
root@RealServer01:/tmp# find /tmp/ -atime 2 -ls
1056797    0 -rw-r--r--   1 root     root            0 Nov  3 14:58 /tmp/a.txt
root@RealServer01:/tmp#


根据权限查找

-perm [+|-]MODE

MODE精确权限匹配

+MODE表示任何一类(u,g,o)对象的权限中只有能有一位匹配到即可。例如:

find /tmp -perm +622 -ls表示的是:

在aaa bbb ccc分别表示user group other的权限,而+622的含义是:

属主有读权限

属主有写权限

属组有写权限

other有写权限

上述四个条件中只要满足其中一个,文件就会匹配成功进而打印显示出来

root@RealServer01:/tmp/testdir# find /tmp/testdir/ -perm +222 -ls
1056796    4 drwxr-xr-x   2 root     root         4096 Nov  3 15:37 /tmp/testdir/
1056799    0 -rw-r--r--   1 root     root            0 Nov  3 15:14 /tmp/testdir/bb.txt
1056801    0 -rw-r--r--   1 root     root            0 Nov  3 15:15 /tmp/testdir/dd.txt
1056798    0 -rw-r--r--   1 root     root            0 Nov  3 15:13 /tmp/testdir/aa.txt
1056800    0 -rw-r--r--   1 root     root            0 Nov  3 15:14 /tmp/testdir/cc.txt

root@RealServer01:/tmp/testdir# find /tmp/testdir/ -perm 644 -ls #权限是rw_r_ _r_ _才会被匹配成功
1056799    0 -rw-r--r--   1 root     root            0 Nov  3 15:14 /tmp/testdir/bb.txt
1056801    0 -rw-r--r--   1 root     root            0 Nov  3 15:15 /tmp/testdir/dd.txt
1056798    0 -rw-r--r--   1 root     root            0 Nov  3 15:13 /tmp/testdir/aa.txt
1056800    0 -rw-r--r--   1 root     root            0 Nov  3 15:14 /tmp/testdir/cc.txt


-MODE表示每一类对象都必须同时拥有为其指定的权限标准,例如-perm -666,一个文件权限为766,该文件是可以匹配成功的,因为7是包含6的,6也包含6;文件权限是466就不能匹配成功,因为4不包含6。

root@RealServer01:/tmp/testdir# ll
total 8
drwxr-xr-x 2 root root 4096 Nov  3 15:37 ./
drwxrwxrwt 6 root root 4096 Nov  3 15:39 ../
-rw-r--r-- 1 root root    0 Nov  3 15:13 aa.txt
-rw-r--r-- 1 root root    0 Nov  3 15:14 bb.txt
-r--r--r-- 1 root root    0 Nov  3 15:14 cc.txt
-rw-r--r-- 1 root root    0 Nov  3 15:15 dd.txt
root@RealServer01:/tmp/testdir# find -perm -600 -ls
1056796    4 drwxr-xr-x   2 root     root         4096 Nov  3 15:37 .
1056799    0 -rw-r--r--   1 root     root            0 Nov  3 15:14 ./bb.txt
1056801    0 -rw-r--r--   1 root     root            0 Nov  3 15:15 ./dd.txt
1056798    0 -rw-r--r--   1 root     root            0 Nov  3 15:13 ./aa.txt
root@RealServer01:/tmp/testdir#


处理动作

-print:默认的动作,输出至屏幕

-ls:类似于对查找到的文件执行“ls -l”命令

-delete:删除查找到的文件

-fls /path/to/somefile:查找到的所有文件的长格式信息保存到指定文件中

-ok COMMAND {} \;
对查找到的每个文件执行COMMAND中指定的命令;对每个文件执行命令之前,都会交互让用户确认;

-exec COMMAND {} \; 对查找到的每个文件之行COMMAND指定的命令;

不管是-ok还是-exec都要注意,咋COMMAND后面加上空格,然后再接上{} \;     #记住反斜杠与}之间有一个空格;

{}用于引用查找到的文件名称自身;

想要将查找到的文件进行某些处理动作,使用-ok 或者 -exec方式都存在一个问题:当查找到的文件过多,将每一个文件都作为一个个参数传递给COMMAND容易因为参数数量过多引起一些未知的问题,所以想要对查找到的文件之行某些命令,可以使用如下方式:

find | xargs COMMAND

find实战

查找/var目录下没有属主或者属组的文件

root@RealServer01:/home# find /var -nouser-o-nogroup -ls
393348    4 drwx------   2 root     1000         4096 Nov  2 17:46 /var/lib/sudo/mangguo
393349    4 -rw-------   1 root     1000           40 Jan  1  1985 /var/lib/sudo/mangguo/tty1
394228    4 -rw-------   1 root     1000           40 Nov  2 17:46 /var/lib/sudo/mangguo/1
查找/var目录下文件名称是access开头,并且属主不是root的文件

root@RealServer01:/home# find /var \( -name access* \) -a \( -not -user root \)
/var/log/nginx/access.log.20.gz
/var/log/nginx/access.log.35.gz
/var/log/nginx/access.log.33.gz
/var/log/nginx/access.log.25.gz
/var/log/nginx/access.log.10.gz
/var/log/nginx/access.log.34.gz
/var/log/nginx/access.log.16.gz
/var/log/nginx/access.log.5.gz
/var/log/nginx/access.log.27.gz
/var/log/nginx/access.log.1
/var/log/nginx/access.log.6.gz
/var/log/nginx/access.log.17.gz
/var/log/nginx/access.log.38.gz
/var/log/nginx/access.log.13.gz
/var/log/nginx/access.log.22.gz
/var/log/nginx/access.log.4.gz
/var/log/nginx/access.log.24.gz
/var/log/nginx/access.log.29.gz
/var/log/nginx/access.log

查找/home目录下属主不是root并且文件名不是fstab的文件

root@RealServer01:/home# find /home \( -not -user root -a -not -name fstab \) -ls|more   
5481    4 drwxr-xr-x   3 1000     1000         4096 Mar 19  2016 /home/mangguo
5485    4 drwx------   2 1000     1000         4096 Mar 17  2016 /home/mangguo/.cache
5486    0 -rw-r--r--   1 1000     1000            0 Mar 17  2016 /home/mangguo/.cache/motd.legal-displayed
5482    4 -rw-r--r--   1 1000     1000          220 Mar 17  2016 /home/mangguo/.bash_logout
5487    4 -rw-------   1 1000     1000          230 Nov  2 17:47 /home/mangguo/.bash_history
5483    4 -rw-r--r--   1 1000     1000          675 Mar 17  2016 /home/mangguo/.profile
5484    4 -rw-r--r--   1 1000     1000         3486 Mar 17  2016 /home/mangguo/.bashrc
6565    4 drwxr-xr-x   2 testuser testuser     4096 Nov  2 17:45 /home/testuser

查找/var目录下三天前做过修改(也就是至少三天没有动过)的文件

root@RealServer01:/tmp# find /tmp -ctime 3 -ls
1056494    0 -rw-r--r--   1 root     root            0 Oct 30 16:37 /tmp/filelog
root@RealServer01:/tmp# stat  /tmp/filelog
File: `/tmp/filelog'
Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: fc00h/64512d    Inode: 1056494     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-10-30 16:37:41.023955706 +0800
Modify: 2017-10-30 16:37:41.019955866 +0800
Change: 2017-10-30 16:37:41.019955866 +0800
Birth: -
root@RealServer01:/tmp# date 
Fri Nov  3 10:56:27 CST 2017
查找/var目录十二天前Modify的文件

root@RealServer01:/var# find /var/ -mtime 12 -ls
395807    8 -rw-r-----   1 syslog   adm          5017 Oct 22 06:39 /var/log/auth.log.2.gz
393298  260 -rw-r-----   1 www-data adm        262415 Oct 22 06:39 /var/log/nginx/access.log.10.gz
396495  260 -rw-r-----   1 www-data adm        262415 Oct 22 06:39 /var/log/nginx/test/access.log.10.gz
root@RealServer01:/var# stat /var/log/auth.log.2.gz
File: `/var/log/auth.log.2.gz'
Size: 5017            Blocks: 16         IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 395807      Links: 1
Access: (0640/-rw-r-----)  Uid: (  101/  syslog)   Gid: (    4/     adm)
Access: 2017-10-15 06:31:51.000000000 +0800
Modify: 2017-10-22 06:39:01.000000000 +0800
Change: 2017-10-29 06:32:18.028288002 +0800
Birth: -
root@RealServer01:/var#

root@RealServer01:/var# date
Fri Nov  3 14:48:39 CST 2017

查找/var目录下一天前Modify的文件

root@RealServer01:/var# find /var -mtime 1 -ls
393377    4 -rw-r--r--   1 root     root          769 Nov  2 06:36 /var/cache/apt-xapian-index/index.1/postlist.baseB
396507    4 -rw-r--r--   1 root     root           87 Nov  2 06:36 /var/cache/apt-xapian-index/index.1/spelling.baseB
396503    4 -rw-r--r--   1 root     root           76 Nov  2 06:36 /var/cache/apt-xapian-index/index.1/record.baseB
393372    4 -rw-r--r--   1 root     root          778 Nov  2 06:36 /var/cache/apt-xapian-index/index.1/termlist.baseB
393360    4 -rw-r--r--   1 root     root           14 Nov  2 06:36 /var/cache/apt-xapian-index/index.1/synonym.baseB
396466    4 -rw-r-----   1 mysql    adm            20 Nov  2 06:36 /var/log/mysql.log.1.gz
394269    4 -rw-r-----   1 syslog   adm           942 Nov  2 06:36 /var/log/syslog.2.gz
395518    4 -rw-r-----   1 mysql    adm            20 Nov  2 06:36 /var/log/mysql/error.log.1.gz
root@RealServer01:/var# stat /var/log/mysql/error.log.1.gz
File: `/var/log/mysql/error.log.1.gz'
Size: 20              Blocks: 8          IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 395518      Links: 1
Access: (0640/-rw-r-----)  Uid: (  107/   mysql)   Gid: (    4/     adm)
Access: 2017-11-02 06:36:29.000000000 +0800
Modify: 2017-11-02 06:36:29.000000000 +0800
Change: 2017-11-03 06:29:07.681191651 +0800
Birth: -
root@RealServer01:/var# date
Fri Nov  3 14:49:57 CST 2017
root@RealServer01:/var#


查找/var目录下三天内做过修改的文件

root@RealServer01:/tmp# find /tmp/ -ctime -3 -ls
1048580    4 drwxrwxrwt   5 root     root         4096 Nov  3 10:39 /tmp/
1056795    4 -rw-r--r--   1 1000     1000           24 Nov  2 17:46 /tmp/issue
root@RealServer01:/tmp# stat /tmp/
File: `/tmp/'
Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fc00h/64512d    Inode: 1048580     Links: 5
Access: (1777/drwxrwxrwt)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-03 10:47:07.385654536 +0800
Modify: 2017-11-03 10:39:01.961629062 +0800
Change: 2017-11-03 10:39:01.961629062 +0800
Birth: -
root@RealServer01:/tmp# stat /tmp/issue
File: `/tmp/issue'
Size: 24              Blocks: 8          IO Block: 4096   regular file
Device: fc00h/64512d    Inode: 1056795     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ UNKNOWN)   Gid: ( 1000/ UNKNOWN)
Access: 2017-11-02 17:46:48.775823905 +0800
Modify: 2017-11-02 17:46:48.799824063 +0800
Change: 2017-11-02 17:46:48.799824063 +0800
Birth: -
root@RealServer01:/tmp#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: