Linux命令--查找文件或目录 find

find 命令可以根据给定的路劲和表达式查找指定的文件或目录。find 参数选项很多,并且支持正则表达式,功能强大。 和管道结合使用可以实现复杂的功能,是系统管理和普通用户必须掌握的命令。

1. find 命令格式说明

  • path find命令查找的目录路径。

  • -print find命令将匹配到的文件输出到标准输出。

  • -exec find 命令对匹配的文件执行该参数所给出的Shell命令。

  • -ok 和 -exec的作用相同,只是更安全,在执行每个命令之前,都会给出提示,让用户来确定是否执行。

2. find命令常用参数说明

  • -name 按照文件名查找文件

  • -cpio: 对匹配的文件使用 cpio 命令,将这些文件备份到磁带设备中

  • -prune 按照文件权限进行查找文件

  • -user 按照文件属主来查找文件

  • -group 按照文件所属的组来查找文件

  • -mtime -n +n 按照文件更改的时间来查找文件,-n 表示更改时间距现在 n 天以内,+n 表示更改时间距现在 n 天以前

  • -nogroup 查找无效所属组的文件

  • -nouser 查找无效属主文件

  • -newer file1 !file2 查找更改时间比 file1 新但比 file2 旧的文件

  • -follow 如果 find 查找的为链接文件,就跟踪至连接所指向的文件

  • -mount 在查找文件时不跨越文件系统 mount 点

  • -fstype 查找位于某一类型文件系统中的文件

  • -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

  • -size n 查找文件长度为 n 块的文件,带有 c 时表示文件长度以字节计

  • -type 查找某一类型的文件

  • -amin n 查找系统中最后 n 分钟访问的文件

  • -atime n 查找系统中最后 n*24 小时访问的文件

  • -cmin n 查找系统中最后 n 分钟被改变文件状态的文件

  • -ctime n 查找系统中最后 n*24 小时被改变文件状态的文件

  • -mmin n 查找系统中最后 n 分钟被改变文件数据的文件

  • -mtime n 查找系统中最后 n*24 小时被改变文件数据的文件

  • -empty 查找系统中空白的文件或目录,或目录中没有子目录的文件夹

  • -false 查找系统中总是错误的文件

  • -gid n 查找系统中文件数字组ID为 n 的文件

  • -daystart 测试系统中从今天开始 24 小时以内的文件,用法类似于 -amin

  • -help 显示命令摘要(帮助)

  • -maxdepth levels 在某个层次目录中按照递减方法查找

3. find基本用法

  • find 如不加任何参数,表示查找当前路径下的所有文件和目录

  • find -print 将结果打印到标准输出

  • find /data/log 指定路劲查找

  • find / -name “abc.txt” 在系统中查找 abc.txt 如果执行完毕没有找到,则说明系统中不存在该文件

  • find 还支持正则表达式查找

  • find /data/logs -mame “*.log” -type f -printf 查找符合指定字符串的文件

  • find . -name “[0-9]” -type f 查找以数字开头的文件

  • find / -mtime -1 |head 查找系统内最近24小时修改过的文件

  • find / -mmin -15|head 查找系统内最近15 分钟修改过的文件

  • find 使用 type 选项可以查找特定的文件类型,常见类型如下

b 块设备文件

d 目录

c 字符设备文件

p 管道文件

l 符号链接文件

f 普通文件

  • find . -type d 查找当前路径中的所有目录
  • find . -type f 查找当前路径中的所有文件
  • find . -type l 查找当前路径中的所有符号链接文件

4. xargs命令

find命令可以把匹配到的文件传递给 xargs 命令执行,在使用 find 命令的 -exec 选项处理匹配到的文件时,find将所有匹配到的文件一起传递给 exec 执行。由于有些系统对能够传递给 exec 的命令长度有限制,这样会引起溢出错误。这时可以使用 xargs 命令。

  • find / type f -print | xargs file 查找系统中的每一个普通文件,并用 file 命令来测试它们分别属于哪一类文件。

  • find . -type f -name “.log” -print | xargs rm  查找当前目录下的 .log 文件,并删除 。

  • find . -type f -exec ls -l {} ; 用 ls -l 列出所有匹配到的文件。

  • find logs -type f -mtime +5 -exec rm {} ; 查找 log 中更改时间在 5 天前的文件并删除。

  • find logs -type f -ok rm {} ; 查找 log中的所有普通文件并在删除前确认。

  • find . -type f -name “.log” -print | gerp “node” 查找当前目录下的 .log 文件,并从查找结果中筛选出带有 node 字符串的文件 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值