Linux:find命令

0、常用

复制代码
#去指定目录下找所有的文件
find /data -type f

#去指定目录下找名字为nginx.conf的文件
find / -name nginx.conf

#找最近两天内访问的test.sh文件
find / -name test.sh -atime -2
复制代码

 

1、前言

从各个维度(类型、时间、权限、大小……)查找文件

2、用法

find 路径 选项 动作

在全部目录下查找名为nginx.conf的文件

find / -name nginx.conf

 

3、选项

选项

说明

时间

①内容修改时间(modification time,mtime)

文件内容变更时,会更新该时间

②状态修改时间(status time,ctime)

文件状态变更(权限、属性……)时,会更新该时间

③访问时间(access time,atime)

每当读取(cat)时,就会更新该时间

-atime n、-n、+n 访问时间
 -ctime n、-n、+n 状态修改时间

-mtime n

-mtime -n

-mtime +n

内容变更

n:n天之前的一天内

+n:n天之前

-n:n天前到现在

-newer file

比file新

用户、组名 

-uid n UID 
-gid n  GID 
-user name  用户名 
-group name  组名 
-nouser  不属于任何人 
-nogroup  不属于任何组 

权限  

-name filename 文件名(可正则) 
 -size [+-]SIZE 比SIZE大(+)或小(-),比50KB大--size +50K 
 -type TYPE  文件类型:f b c d l s p
 -perm mode  权限刚好等于mode,mode为4位的权限数字
 -perm -mode 权限涵盖mode 
 -perm /mode 包含任一mode的权限 

例子

日期

复制代码
#将24 小时内有更动过内容 (mtime) 的文件列出
find / -mtime 0
#0 代表目前的时间

#三天前的 24 小时内
find / -mtime 3 

文件日期比 /etc/passwdfind /etc -newer /etc/passwd
复制代码

用户/组

#/home 下属于 dmtsai 的文件
find /home -user dmtsai

#搜寻系统中不属于任何人的文件
find / -nouser

权限

复制代码
#档名为 passwd
find / -name passwd

#包含了 passwd 关键词的文件
find / -name "*passwd*"


文件类型为 Socket
find /run -type s

#含有 SGID 或 SUID 或 SBIT 的属性
find / -perm /7000
#7000 就是 ---s--s--t ,那么只要含有 s 或 t 的就列出
#-7000 表示要同时含有 ---s--s--t 的所有三个权限。
#只需要任意一个,就是 /7000
复制代码

 

4、动作

  • -exec 指令:使用别的指令处理搜寻到的结果
  • -print:默认,将结果打印

例子

#将上个范例找到的文件使用 ls -l 列出来
find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
#-exec 后面的 ls -l 就是额外的指令,指令不支持命令别名,所以仅能使用 ls -l 不可以使用 ll

5、多条件查找

find 路径 选项1 -a或-o 选项2 动作

#选项1 -a或-o 选项2
#-a表示and -o表示or
find /home -name '1*' -a -type f 

 

posted @   ShineLe  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示