linux命令学习之find命令的使用查找文件 超详细
本介绍在linux系统中所要使用到的系统命令,这里教大家学习linux命令之
find的使用查找文件或者目录
操作方法
- 01
1 列出当前目录及子目录下所有文件和文件夹 输入命令: find . 结果: ./po/Makefile.msvc ./po/da.po ./po/sv.po ./po/hr.po 其中列出来的文件名会加" ./"符号 在/var/www/html/zhuan/test/libiconv-1.9.2 目录下查找以.in结尾的文件名 输入命令: find /var/www/html/zhuan/test/libiconv-1.9.2 -name "*.in" 结果: /var/www/html/zhuan/test/libiconv-1.9.2/Makefile.in /var/www/html/zhuan/test/libiconv-1.9.2/configure.in /var/www/html/zhuan/test/libiconv-1.9.2/config.h.in 其中“ -name”指的是你要查找的文件名 find /var/www/html/zhuan/test/libiconv-1.9.2 -iname "*.in" 其中比上条命令“-name”中多了个i字符,表示忽略大小写
- 02
2 当前目录及子目录下查找所有以.txt和.pem结尾的文件 输入命令: find . -name "*.txt" -o -name "*.pem" 结果: ./rsakey私钥.pem ./rsakey公钥.pem ./aa.txt ./bb.txt 其中-o 的意思等于英语中的or单词 匹配文件路径或者文件 输入命令: find /usr/ -path "*local*" 结果: /usr/bin/locale /usr/bin/localedef /usr/bin/libwacom-list-local-devices
- 03
3 基于正则表达式匹配文件路径,找出txt和pem结尾的文件 输入命令: find . -regex ".*\(\.txt\|\.pem\)$" 结果: ./rsakey私钥.pem ./rsakey公钥.pem ./aa.txt ./bb.txt 找出/var/www/html/zhuan下不是以.txt结尾的文件 输入命令: find /var/www/html/zhuan ! -name "*.txt" 结果: /var/www/html/zhuan /var/www/html/zhuan/dsaparam1024参数集.pem /var/www/html/zhuan/dsakey私钥.pem
- 04
4 根据文件类型进行搜索,查找当前文件夹向下最大深度限制为3的文件。 输入命令: find . -maxdepth 3 -type f 结果: ./file.txt ./dsaparam1024参数集.pem ./dsakey私钥.pem 搜索出深度距离当前目录至少2个子目录的所有文件 输入命令: find . -mindepth 2 -type f
- 05
5 根据文件时间戳进行搜索,搜索最近七天内被 访问过的所有文件, 访问不等于修改 输入命令: find . -type f -atime -7 如果刚好等于七天则为 find . -type f -atime 7 大于七天则为 find . -type f -atime +7 其中atime等于 append访问的意思 搜索访问时间超过10分钟的所有文件 输入命令: find . -type f -amin +10 找出比abc.log修改时间更长的所有文件 find . -type f -newer abc.log 搜索最近七天内被 修改过的所有文件 输入命令: find . -type f -mtime -7 其中mtime等于 modify修改的意思 搜索最近七天内被 变化过的所有文件,变化等于 权限的变化 输入命令: find . -type f -ctime -7 其中ctime等于 change变化的意思
- 06
6 根据文件大小进行匹配,搜索大于10KB的文件 输入命令: find . -type f -size +10k 同理等于10kb 则 find . -type f -size 10k 同理小于10kb则 find . -type f -size -10k 搜索文件大小为455字节的文件 输入命令: find . -type f -size 455c 结果: ./dsaparam1024参数集.pem 其中“c”代表字节
- 07
7 删除匹配文件,删除当前目录下所有.txt文件 输入命令: find . -type f -name "*.txt" -delete 结果: 找出当前目录下权限不是644的html文件 输入命令: find . -type f -name "*.html" ! -perm 644 找出根目录 用户ftp拥有的所有文件 输入命令: find / -type f -user ftp 找出当前目录用户组sunk拥有的所有文件 输入命令: find . -type f -group sunk
- 08
8 借助-exec选项与其他命令结合使用 找出当前目录下所有root的文件,并把所有权更改为用户tom 输入命令: find .-type f -user root -exec chown tom {} \; 找出自己家目录下所有的.txt文件并删除 输入命令: find $HOME/. -name "*.txt" -ok rm {} \; -ok和-exec行为一样,不过它会给出提示,是否执行相应的操作 要列出所有长度为零的文件,空目录 输入命令: find . -empty 搜索但跳出指定的目录,查找当前目录或者子目录下所有.txt文件,但是跳过子目录abc 输入命令: find . -path "./abc" -prune -o -name "*.txt" -print