find命令

find命令

find命令用来在指定目录下查找文件,任何位于参数之前的字符串都将被视为要查找的目录名,如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

语法

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]

参数

  • -amin<minute>: 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
  • -anewer<file or folder>: 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
  • -atime<day>: 查找在指定时间曾被存取过的文件或目录,单位以天计算。
  • -cmin<minute>: 查找在指定时间之时被更改过的文件或目录。
  • -cnewer<file or folder>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
  • -ctime<day>: 查找在指定时间之时被更改的文件或目录,单位以天计算。
  • -daystart: 从本日开始计算时间。
  • -depth: 从指定目录下最深层的子目录开始查找。
  • -empty: 寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录。
  • -exec<command>: 假设find指令的回传值为True,就执行该指令。
  • -false: 将find指令的回传值皆设为False
  • -fls<file list>: 此参数的效果和指定-ls参数类似,但会把结果保存为指定的列表文件。
  • -follow: 排除符号连接。
  • -fprint<file list>: 此参数的效果和指定-print参数类似,但会把结果保存成指定的列表文件。
  • -fprint0<file list>: 此参数的效果和指定-print0参数类似,但会把结果保存成指定的列表文件。
  • -fprintf<file list><output format>: 此参数的效果和指定-printf参数类似,但会把结果保存成指定的列表文件。
  • -fstype<file system type>: 只寻找该文件系统类型下的文件或目录。
  • -gid<group id>: 查找符合指定之群组识别码的文件或目录。
  • -group<group name>: 查找符合指定之群组名称的文件或目录。
  • -help, --help: 在线帮助。
  • -ilname<template style>: 此参数的效果和指定-lname参数类似,但忽略字符大小写的差别。
  • -iname<template style>: 此参数的效果和指定-name参数类似,但忽略字符大小写的差别。
  • -inum<inode num>: 查找符合指定的inode编号的文件或目录。
  • -ipath<template style>: 此参数的效果和指定-path参数类似,但忽略字符大小写的差别。
  • -iregex<template style>: 此参数的效果和指定-regexe参数类似,但忽略字符大小写的差别。
  • -links<number of connections>: 查找符合指定的硬连接数目的文件或目录。
  • -iname<template style>: 指定字符串作为寻找符号连接的范本样式。
  • -ls: 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。
  • -maxdepth<directory level>: 设置最大目录层级。
  • -mindepth<directory level>: 设置最小目录层级。
  • -mmin<minute>: 查找在指定时间曾被更改过的文件或目录,单位以分钟计算。
  • -mount: 此参数的效果和指定-xdev相同。
  • -mtime<24 hour>: 查找在指定时间曾被更改过的文件或目录,单位以24小时计算。
  • -name<template style>: 指定字符串作为寻找文件或目录的范本样式。
  • -newer<file or folder>: 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
  • -nogroup: 找出不属于本地主机群组识别码的文件或目录。
  • -noleaf: 不去考虑目录至少需拥有两个硬连接存在。
  • -nouser: 找出不属于本地主机用户识别码的文件或目录。
  • -ok<command>: 此参数的效果和指定-exec类似,但在执行指令之前会先询问用户,若回答yY,则放弃执行命令。
  • -path<template style>: 指定字符串作为寻找目录的范本样式。
  • -perm<permission value>: 查找符合指定的权限数值的文件或目录。
  • -print: 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有./字符串。
  • -print0: 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。
  • -printf<output format>: 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定。
  • -prune: 不寻找字符串作为寻找文件或目录的范本样式;
  • -regex<template style>: 指定字符串作为寻找文件或目录的范本样式。
  • -size<file size>: 查找符合指定的文件大小的文件。
  • -true: 将find指令的回传值皆设为True
  • -type<file type>: 只寻找符合指定的文件类型的文件。
  • -uid<user id>: 查找符合指定的用户识别码的文件或目录。
  • -used<day>: 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。
  • -user<owner name>: 查找符和指定的拥有者名称的文件或目录。
  • -version, --version: 显示版本信息。
  • -xdev: 将范围局限在先行的文件系统中。
  • -xtype<file type>: 此参数的效果和指定-type参数类似,差别在于它针对符号连接检查。

示例

查找/tmp/目录及其子目录下所有拓展名为py的文件。

find /tmp/ -name *.py
# /tmp/file.py

查找/tmp/目录及其子目录下所有一般文件。

find /tmp/ -type f
# /tmp/file.c
# /tmp/file.txt
# /tmp/a.out
# /tmp/www/1.txt
# /tmp/file.py
# /tmp/file
# ...

查找/tmp/目录及其子目录下所有最近1天内更改过的文件,+1则表示1天前更改过文件。

find /tmp/ -ctime -1
# /tmp/
# /tmp/1
# /tmp/file.txt
# /tmp/file

查找/tmp/目录及其子目录下所有更改时间在7日以前的普通文件,并在删除之前询问是否删除。

find /tmp/ -type f -mtime +7 -ok rm {} \;
# < rm ... /tmp/file.py > ? n
# ...

查找/tmp/目录及其子目录下所有文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件。

find /tmp/  -type f -perm 644 -exec ls -l {} \;
# -rw-r--r-- 1 root root 60 Jul 22 19:55 /tmp/file.c
# -rw-r--r-- 1 www www 73 Jul 23 20:54 /tmp/file.txt
# ...

查找/tmp/目录及其子目录下所有文件长度为0的普通文件,并列出它们的完整路径。

find /tmp/ -type f -size 0 -exec ls -l {} \;
# -rwx------ 1 root root 0 Jul 11 17:25 /tmp/file.py

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://man.linuxde.net/find
https://www.runoob.com/linux/linux-comm-find.html
https://www.tutorialspoint.com/unix_commands/find.htm

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • rcp命令

    rcp命令用于复制远程文件或目录,如同时指定两个以上的文件或目录,且最后的目标位置是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中,执行rc...

    WindrunnerMax
  • 路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。

    WindrunnerMax
  • file命令

    file命令用来探测给定文件的类型,file命令对文件的检查分为文件系统、魔法文件和语言检查3个过程。

    WindrunnerMax
  • python实现模拟退火算法

    kalifa_lau
  • Python-使用for循环遍历文件

    fd.read()         从头读到位,读完后指针指向文件的末尾,返回的是字符。

    py3study
  • 如何用FPGA解一道初中数学题

    前几天和同事聊天,他说他上初中的儿子做出了一道很难的数学题,想考考我们这些大学生看能不能做得出来?

    单片机点灯小能手
  • DOM 1

    大当家
  • Python 3 【文件操作】

    Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数。使用 open() 方法一定要保证关闭文件对象,即...

    用户6184845
  • 小朋友学Python(17):文件

    Python 提供了必要的函数和方法进行默认情况下的文件基本操作。你可以用 file 对象做大部分的文件操作。 一、打开和关闭文件 例1 (1)创建名为test...

    海天一树
  • shell动态脚本和pl/sql动态脚本的比较

    最近项目有一个需求,需要在多个数据库的schema上跑一些脚本。希望dba能够提供一个脚本,能够根据需求在环境中执行指定的脚本。 乍一听,没什么技术难点,为了更...

    jeanron100

扫码关注云+社区

领取腾讯云代金券