本节所讲内容:
文件查找find
find搜索文件系统、实时搜索
find [目录] [条件][动作]
[目录]
不输入代表当前目录
例:
find
find /boot
[条件]
用户和组:-user -group
例:查找home目录下所有的属于追梦的文件
[root@localhost ~]# find/home/ -user zhuimeng
类型:-type( f 文件 , d 目录 , l 连接 , p 管道 ,c 字符文件 ,b 块文件,s socket文件 )
[root@localhost ~]# find/home/ -type f
[root@localhost ~]# find/home/ -type d
名字:-name
[root@localhost ~]# useradduser1
[root@localhost ~]# useraddvipuser3
[root@localhost ~]# touch/home/user1/aaausercccc
[root@localhost ~]# find/home/ -name *user*
大小:-size +NM 大于N兆 -NG 小于NGB
[root@localhost ~]# find/boot/ -size +2M
时间:-mtime -atime -ctime
任务:百度一下如何针对分钟进行查找
扩展:linux中ctime,mtime,atime的区别
[root@localhost ~]# touchyy.txt
[root@localhost ~]# statyy.txt
File: ‘yy.txt’
Size: 0 Blocks:0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 35698271 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-12-0820:59:28.293035474 +0800
Modify: 2015-12-0820:59:28.293035474 +0800
Change: 2015-12-0820:59:28.293035474 +0800
ctime:“改变时间(changetime)”
mtime :“修改时间(modificationtime)”
atime :“访问时间(accesstime)”
例:
改变和修改之间的区别在于是改文件的属性还是更改它的内容。
chmod a-w myfile,那么这是一个改变;改变的ctime
echo aaa > bajie那么这是一个修改。mtime :“修改时间
atime,改变是文件的索引节点发生了改变;mtime 修改是文本本身的内容发生了变化。
[root@localhost ~]#chmod u+x yy.txt
[root@localhost ~]#stat yy.txt
File: ‘yy.txt’
Size: 0 Blocks:0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 35698271 Links: 1
Access:(0744/-rwxr--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-12-0820:59:28.293035474 +0800
Modify: 2015-12-0820:59:28.293035474 +0800
Change: 2015-12-08 21:02:06.612034204 +0800
可以看到,文件的ctime发生了改变
[root@localhost ~]# statyy.txt
File: ‘yy.txt’
Size: 4 Blocks:8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 35698271 Links: 1
Access: (0744/-rwxr--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-12-0820:59:28.293035474 +0800
Modify: 2015-12-08 21:03:41.775033441 +0800
Change: 2015-12-08 21:03:41.775033441 +0800
可以看到文件的ctime和mtime发生了改变
结论:无论是文件的属性还是内容发生变化,文件的ctime都会发生改变,只有文件内容发生修改的时候,文件的mtime才会发生变化
[root@localhost ~]# cat yy.txt
aaa
[root@localhost ~]# statyy.txt
File: ‘yy.txt’
Size: 4 Blocks:8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 35698271 Links: 1
Access: (0744/-rwxr--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-12-0821:06:45.223031969 +0800
Modify: 2015-12-0821:03:41.775033441 +0800
Change: 2015-12-0821:03:41.775033441 +0800
可以看到文件的atime发生了改变
结论:只要对文件内容进行了查看,那么atime就会发生改变
ls(1) 命令可用来列出文件的 atime、ctime和 mtime。
ls -lc filename 列出文件的 ctime ll -c
ls -lu filename 列出文件的 atime ll -u
ls -l filename 列出文件的 mtime ll
[root@localhost ~]# date-s 2015-12-11
Fri Dec 11 00:00:00 CST 2015
[root@localhost ~]# find/root/ -mtime +1 | grep yy.txt
/root/yy.txt
[root@localhost ~]# find/root/ -mtime 2 | grep yy.txt
/root/yy.txt
权限:-perm
[root@localhost ~]# find/boot/ -perm 755 #等于0775权限的文件或目录
4 SUID 2 SGID 1 sticky
[root@localhost ~]# find /tmp/-perm -777 #至少有777权限的文件或目录
例:
[root@localhost ~]# mkdir ccc
[root@localhost ~]# chmod 777ccc
[root@localhost ~]# mkdir test
[root@localhost ~]# chmod 1777test/
[root@localhost ~]# touch b.sh
[root@localhost ~]# chmod 4777b.sh
查找:
[root@localhost ~]# find/root/ -perm 777
/root/ccc
[root@localhost ~]# find/root/ -perm 1777
/root/test
[root@localhost ~]# find/root/ -perm 4777
/root/b.sh
[root@localhost ~]# find/root/ -perm -777
/root/ccc
/root/test
/root/b.sh
查找的目录深度:
[root@localhost ~]# find/boot/ -maxdepth 2 #只查找目录第二层的文件和目录
多条件:
-a -o ! 或 -and -or -not
[root@localhost ~]#find -type f -a -perm -002
[root@localhost ~]#find -type f -and -perm /o+w
./b.sh
[root@localhost ~]# find! -type f -and -perm -001
[动作]
-ls
-ok
-exec
-printf
[root@localhost ~]# cp/etc/passwd test2/
[root@localhost ~]# cp-r /boot/ test2/
[root@localhost ~]#find /root/test2/ -type f -exec rm {} \;
[root@localhost ~]# lstest2/
boot
[root@localhost ~]#find /root/test2/ -type f | xargs rm -rf
[root@localhost ~]# lstest2/
boot
参数解释:
-exec 执行命令
rm 要执行的命令
{} 表示find -type f 查找出来了文件内容
\; {} 和 \;之间要有空格。 固定语法,就是以这个结尾
学习过程中如果问题,请留言。更多内容请加:
学神IT-linux讲师-RM老师QQ:2805537762
学神IT-戚老师QQ:3341251313
学神IT-旭斌QQ:372469347
学神IT教育RHEL7交流群:468845589