linux之find详解:快速查找文件应用

0.查看文件详情

[root@master ~]# stat /usr/share/vim/vim74/syntax/syntax.vim
  File: ‘/usr/share/vim/vim74/syntax/syntax.vim’
  Size: 1228      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 17238963    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-12-18 15:19:42.803864733 +0800
Modify: 2018-04-11 07:54:54.000000000 +0800
Change: 2018-07-06 16:13:50.956019553 +0800
 Birth: -


说明:Access访问时间。Modify修改时间。Change状态改动时间。可以stat *查看这个目录所有文件的状态。
ctime=change time
atime=access time
mtime=modifiy time

因为这是一个新的文件(filetime.txt),没做过内容、属性的更改,也没读过这个文件,所以三者(访问时间、修改时间、状态改动时间)的时间是一致的,这时文件的修改时间与这三个时间是一样的,是没有疑问的。
 
1、Access访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令(这里注意,有时候输入vi也会修改访问时间,因为也需要访问内容)。ls、stat命令都不会修改文件的访问时间。
2、Modify修改时间,修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。
3、Change状态改动时间。是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。

1.find命令详解

基本格式: 

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

1)按照名字查找: 

--查找名字为jdk-8u171-linux-x64.tar.gz的文件或目录
[root@master ~]# find / -name jdk-8u171-linux-x64.tar.gz
find: ‘/run/user/1001/gvfs’: Permission denied
/home/hadoop/opt/software/jdk-8u171-linux-x64.tar.gz
/bigdata/software/jdk-8u171-linux-x64.tar.gz

--查找名字为带有linux的文件或目录
[root@master ~]# find / -name  *linux*\.tar\.gz
find: ‘/run/user/1001/gvfs’: Permission denied
/home/hadoop/opt/software/jdk-8u171-linux-x64.tar.gz
/home/hadoop/opt/software/eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz
/bigdata/software/jdk-8u171-linux-x64.tar.gz


--查找名字符合正则表达式的文件或目录
[root@master ~]# find / -regex .*linux.*\.tar\.gz
find: ‘/run/user/1001/gvfs’: Permission denied
/home/hadoop/opt/software/jdk-8u171-linux-x64.tar.gz
/home/hadoop/opt/software/eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz
/bigdata/software/jdk-8u171-linux-x64.tar.gz

2)按照类型查找

--查找文件
[root@master ~]# find / -type f

--查找目录
[root@master ~]# find / -type d

3)按照时间查找

--Access访问时间 
---查找Access访问时间距离现在时刻2天内的文件,-n指n天以内,+n指n天以前
[root@master ~]# find / -atime -2

--查找Access访问时间距离现在时刻2天以上的文件,-n指n天以内,+n指n天以前
[root@master ~]# find / -atime +2

---查找Access访问时间距离现在时刻2分钟内的文件,-n指n分钟以内,+n指n分钟以前
[root@master ~]# find / -amin -2

---查找Access访问时间距离现在时刻2分钟上的文件,-n指n分钟以内,+n指n分钟以前
[root@master ~]# find / -amin +2



--Modify修改时间
--查找Modify修改时间距离现在时刻2天以内的文件,-n指n天以内,+n指n天以前
[root@master ~]# find / -mtime -2

--查找Modify修改时间距离现在时刻2天以上的文件,-n指n天以内,+n指n天以前
[root@master ~]# find / -mtime +2

---查找Modify修改时间距离现在时刻2分钟内的文件,-n指n分钟以内,+n指n分钟以前
[root@master ~]# find / -mmin -2

---查找Modify修改时间距离现在时刻2分钟上的文件,-n指n分钟以内,+n指n分钟以前
[root@master ~]# find / -mmin +2




--Change状态改动时间
--查找Change状态改动时间距离现在时刻2天以内的文件,-n指n天以内,+n指n天以前
[root@master ~]# find / -ctime -2

--查找Change状态改动时间距离现在时刻2天以上的文件,-n指n天以内,+n指n天以前
[root@master ~]# find / -ctime +2

---查找Change状态改动时间距离现在时刻2分钟内的文件,-n指n分钟以内,+n指n分钟以前
[root@master ~]# find / -cmin -2

---查找Change状态改动时间距离现在时刻2分钟上的文件,-n指n分钟以内,+n指n分钟以前
[root@master ~]# find / -cmin +2

4) 根据文件大小查找

--大小单位关键字(大小写敏感):c:字节,w:双字,k:KB,M:MB,G:GB

--查找文件大小大于10M的文件或目录
[root@master ~]# find / -size +10M

--查找文件大小小于10M的文件或目录
[root@master ~]# find / -size -10M


--查找空文件
[root@master ~]# find /  -empty

5)按照所属用户或所属组查找

--查找所属用户为hadoo的文件或目录
[root@master ~]# find / -user hadoop

--查找所属组为hadoop的文件或目录
[root@master ~]# find / -group  hadoop

6)按照权限来查找

--查找用户和组有读写权限,其他用户有读权限(其他权限不限)的文件和目录
[root@master ~]# find / -perm -664

7)对符合find规则的进行shell命令执行

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。


--查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)
[root@master ~]# find ./ -type d -print -exec ls {} \;


--查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,执行命令前需要确认)
[root@master ~]# find ./ -type d -ok ls {} \;

8)使用混合查找方式查找文件:

--参数有: !,-and(-a),-or(-o)
--在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件

[root@master ~]# find /tmp -size +10000c -and -mtime +2;

2.各个查找文件命令的区别:

(1)find
根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 
(2)grep
根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
(3)which 
查看可执行文件的位置,只有设置了环境变量的程序才可以用
(4)whereis
寻找特定文件,只能用于查找二进制文件、源代码文件和man手册页

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值