文件查找之find命令
命令:find
參數(shù)類型:
文件類型 -type
文件名稱 -name
文件大小 -size
文件修改時(shí)間 -mtime
文件屬主和屬組 -user -group
按文件名查找
-name
//1.查找包含ifcon-eth1名稱的文件
[root@study ~]# find /etc -name "ifcfg-eth1"
//2.查找包含txt的文件
[root@study ~]# find /etc -name "*ifcfg-eth1*" // **表示只要包含ifcfg-eth1的名稱都符合要求
//3.-i 忽略大小寫
[root@study ~]# find /etc -iname "ifcfg-eth1"
//4.查找以.log結(jié)尾的文件
[root@study ~]# find /etc -iname "*.log" //*表示.log前可以是任意字符
按文件類型查找
-type d
//文件類型:
//f :文件
[root@study ~]# find /dev -type f
//d:目錄
[root@study ~]# find /dev -type d
//l:鏈接
[root@study ~]# find /dev -type l
//b:塊設(shè)備
[root@study ~]# find /dev -type b
//c:字符設(shè)備
[root@study ~]# find /dev -type c
//s:套接字
[root@study ~]# find /dev -type s
按文件大小查找
-size
//1.查找大于5M的文件()
[root@study ~]# find /etc -size +5M
2.查找等于5M的文件
[root@study ~]# find /etc -size 5M
3.查找小于5M的文件
[root@study ~]# find /etc -size -5M
按文件時(shí)間查找
-mtime
示例:
1.查找7天以前的文件(不會(huì)打印當(dāng)天的文件)=====( 保留了最近7天的數(shù)據(jù))
[root@study ~]# find ./ -iname "file-*" -mtime +7
2.查找最近7天的文件,不建議使用(會(huì)打印當(dāng)天的文件)
[root@study ~]# find ./ -iname "file-*" -mtime -7
3.查找第7天文件(不會(huì)打印當(dāng)天的文件)
[root@study ~]# find ./ -iname "file-*" -mtime 7
實(shí)際案例:本地文件保留最近7天的備份文件, 備份服務(wù)器保留3個(gè)月的備份文件
find /backup/ -iname "*.bak" -mtime +7 -delete
find /backup/ -iname "*.bak" -mtime +90 -delete
按照屬主和屬組查找
-user
-group
1.查找屬主是jack
[root@study ~]# find /home -user jack
2.查找屬組是admin
[root@study ~]# find /home -group admin
3.查找屬主是jack, 屬組是admin
[root@study ~]# find /home -user jack -group admin
4.查找屬主是jack, 并且屬組是admin
[root@study ~]# find /home -user jack -a -group admin
5.查找屬主是jack, 或者屬組是admin
[root@study ~]# find /home -user jack -o -group admin
6.查找沒有屬主
[root@study ~]# find /home -nouser
7.查找沒有屬組
[root@study ~]# find /home -nogroup
8.查找沒有屬主或?qū)俳M
[root@study ~]# find /home -nouser -o -nogroup
動(dòng)作處理
默認(rèn)動(dòng)作(-print)打印到文件
-ls 使用長(zhǎng)格式打印文件
[root@study ~]# find /etc -name "ifcfg*" -print
-delete 刪除文件,不能刪除目錄
[root@study ~]#find /etc -name "ifcfg*" -delete
-ok 后面可以跟上自定義的shell命令现诀,并且需要一個(gè)一個(gè)確認(rèn)
[root@study ~]#find /etc -name "ifcfg*" -ok cp -v {} /tmp \;
-exec 后面跟自定義命令 (-exec 命令內(nèi)容 /;)固定格式坐桩。有時(shí)候要根據(jù)命令添加 "\(\)"進(jìn)行界定
[root@study ~]# find /etc -name "ifcfg*" -exec rm -f {} \;
[root@study ~]# find /etc -name "ifcfg*" -exec cp -v {} /tmp \;
find邏輯運(yùn)算符
符號(hào) | 作用 | 等價(jià) |
---|---|---|
-a | 與 | and |
-o | 或 | or |
绵跷! | 非 | -not |
示例:
//1.查找當(dāng)前目錄下碾局,屬主不是root的所有文件
[root@study ~]# find . -not -user root
[root@study ~]# find . ! -user root
//2.查找當(dāng)前目錄下净当,屬主屬于oldxu像啼,并且大小大于1k的文件
[root@study ~]# find /etc -type f -user oldxu -size +1k
[root@study ~]# find /etc -type f -user oldxu -a -size +1k
[root@study ~]# find /etc -type f -user oldxu -and -size +1k
//3.查找當(dāng)前目錄下的屬主為root或者以xml結(jié)尾的普通文件
[root@study ~]# find . -type f \( -user root -o -name "*.xml" \) -ls