shell命令--find

shell命令--find

0、find命令的专属图床

点此快速打开文章图床_shell命令find

1、find命令的功能说明

find命令用于查找目录下的文件或查找目录,同时可以调用其他命令执行相应的操作。

2、find命令的语法格式

SYNOPSIS
    find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

3、find命令的选项说明

  • -name:按文件名查询
  • -type:f 查找文件;d 查找目录
  • -exec:对查找的结果再处理
  • -mtime:-n查找更改时间距现在n(正整数)天以内;+n查找更改时间距现在n(正整数)天以前;n查找更改时间距现在n(正整数)
  • -perm:按照文件的权限来查找文件
  • -size:以文件大小查找
  • -path:指定路径样式,配合-prune参数排除指定目录
  • !:表示取反
  • -a:表示取交集
  • -o:取并集

4、find命令的实践操作

范例1:查找指定时间内修改过的文件

find . -atime -1  --> . 表示当前目录,查找2天内被访问的文件
find /test/ -mtime -5  -->使用绝对路径,查找5天内被修改的文件

范例2:用 -name 指定关键字查找

find /var/log/ -mtime +5 -name '*.log'  -->在/var/log/目录下查找5天以前.log结尾的文件

范例3:利用 ! 反向查找

find . -type d -->查找当前目录下所有目录
find . ! -type d  -->!表示取反,查找不是目录的文件,注意感叹号的位置

范例4:按照目录或文件的权限来查找文件

find /test -perm 755  -->755是权限的数字表示方式

范例5:按文件大小查找文件

find . -size +10c  -->查找当前目录下大于10字节的文件

范例6:查找文件时希望忽略某个目录

find /test -path "/test/dir1" -prune -o -print -->排除指定目录

范例7:忽略多个目录(了解即可)

find /test \( -path /test/dir2 -o -path /test/dir3 \) -prune -o -print  -->注意括号的空格

范例8:ls -l 命令放在 find 命令的 -exec 选项中执行

find . -type f -exec ls -l {} \;  -->最后以分号作为结束标志,考虑不同意义,所以要转义加\

范例9:ls -l 命令放在 find命令的 xargs选项中执行

find . -type f |xargs ls -l  -->xargs是一个命令,后续会讲

范例10:使用 xargs 执行 mv(移动文件或目录)命令例子 1

ls
ls dir3
find . -name "file*"|xargs -i mv {} dir3/  -->使用 -i 参数使得 { } 代表find查找到的文件
ls
ls dir3

范例11:使用 xargs 执行 mv(移动文件或目录)命令例子 2

ls
ls dir3
find . -name "file*"|xargs mv -t .  -->使用 mv的-t 参数,是不是更简单一点。
ls
ls dir3

『MineGi有话说』:快来扫一扫下面链接的二维码,加入我们吧!

posted @ 2020-01-06 08:00  MineGi  阅读(561)  评论(0编辑  收藏  举报