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
(移动文件或目录)命令例子 1ls ls dir3 find . -name "file*"|xargs -i mv {} dir3/ -->使用 -i 参数使得 { } 代表find查找到的文件 ls ls dir3
范例11:使用
xargs
执行mv
(移动文件或目录)命令例子 2ls ls dir3 find . -name "file*"|xargs mv -t . -->使用 mv的-t 参数,是不是更简单一点。 ls ls dir3
『MineGi有话说』:快来扫一扫下面链接的二维码,加入我们吧!