博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

find命令详解

Posted on 2018-12-30 22:21  面具下的戏命师  阅读(501)  评论(0编辑  收藏  举报

Linux find命令

Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与

文件。并且将查找到的子目录和文件全部进行显示

用法:

find [PATH] [option] [action]

参数说明:

path: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

1、与时间有关的选项:共有 -atime(被访问的时间), -ctime(被创建的时间) 与 -mtime(被更改过内容的时间) ,时间的还有分钟-cmin,-amin,-mmin 以 -mtime 说明

-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;

-mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;

-mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名

-newer file :file 为一个存在的文件,列出比 file 还要新的文件档名

find . -mtime 4           # 4 则是代表 4-5 那一天的文件档名
find . -mtime +4          #+4 代表大于等于 5 天前的檔名
find . -mtime -4          #-4 代表小于等于 4 天内的文件档名
find . -newer demo.sh
2、与使用者或组名有关的参数:

-uid n :n 为数字,这个数字是用户的账号 ID,亦即 UID ,这个 UID 是记录在/etc/passwd 里面与账号名称对应的数字。

-gid n :n 为数字,这个数字是组名的 ID,亦即 GID,这个 GID 记录在/etc/group

-user name :name 为使用者账号名称喔!例如 dmtsai

-group name:name 为组名喔,例如 users

-nouser :寻找文件的拥有者不存在 /etc/passwd 的人

-nogroup :寻找文件的拥有群组不存在于 /etc/group 的文件

find /home -user usr1  #搜寻/home下属于usr1的文件
find / -nouser              #搜寻不属于任何用户的文件

3、与文件权限及名称有关的参数:

-name filename:搜寻文件名为 filename 的文件;

-size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)的文件。这个 SIZE 的规格有:c: 代表 byte, k: 代表 1024bytes。所以,要找比 50KB还要大的文件,就是『 -size +50k 』

-type TYPE :搜寻文件的类型为 TYPE 的,类型主要有:一般普通文件 (f), 装置文件 (块设备b, 字符设备c),目录 (d), 符号连接 (l), socket (s), 及 FIFO 管道(p) 等属性

-perm mode :搜寻文件权限『刚好等于』 mode 的文件,这个 mode 为类似 chmod的属性值,举例来说, -rwsr-xr-x 的属性为 4755 !

-perm -mode :搜寻文件权限『必须要全部囊括 mode 的权限』的文件,举例来说,我们要搜寻 -rwxr--r-- ,亦即 0744 的文件,使用 -perm -0744,当一个文件的权限为 -rwsr-xr-x                              亦即 4755 时,也会被列出来,因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。

-perm /mode :搜寻文件权限『包含任一 mode 的权限』的文件,举例来说,我们搜寻-rwxr-xr-x ,亦即 -perm /755 时,但一个文件属性为 -rw-------也会被列出来,因为他有 -rw....                           的属性存在!

find / -name passwd            # 找出名字为passwd的文件
find / -name "*passwd*"        # 找出包含passwd关键字的文件
find /run -type s              # 找出run目录下,文件类型为souket的文件
find / -perm /7000             # 搜寻文件当中含有 SGID 或 SUID 或 SBIT 的属性
find / -size +1M               # 找出大于1M的文件

 4、额外可进行的动作

-empty:搜寻空文件或者空文件夹

-exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。

-print :将结果打印到屏幕上,这个动作是预设动作!

find /usr/bin -perm /7000 -exec ls - l {} \;