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
-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 {} ;