1. 程式人生 > >Linux系統文件查找

Linux系統文件查找

權限 tick rgs linux下 名稱查找 其他 字符 塊設備 admin

文件查找概述

Linux系統中的find命令在查找文件時非常有用而且方便。
它可以根據不同的條件來進行查找文件:例如權限、擁有者、修改日期/時間、文件大小等等。 同時find命令是Linux下必須掌握的。

find 命令的基本語法如下

命令 路徑 選項 表達式 動作
find [path...] [options] [expression] [action]
查找 地區 犯罪嫌疑人 性別男25-30歲 槍決行動
find名稱查找

//創建文件
touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1}

//查找/etc目錄下包含ifcfg-eth0名稱的文件

[root@xuliangwei ~]# find /etc -name "ifcfg-eth1"

//-i 忽略大小寫
[root@xuliangwei ~]# find /etc -iname "ifcfg-eth1"
//查找/etc目錄下包含ifcfg-eth名稱所有文件
[root@xuliangwei ~]# find /etc/ -name "ifcfg-eth"
[root@xuliangwei ~]# find /etc -iname "ifcfg-eth
"
find大小查找

//查找大於5M
[root@xuliangwei ~]# find /etc -size +5M

//超找等於5M
[root@xuliangwei ~]# find /etc -size 5M

//查找小於5M
[root@xuliangwei ~]# find /etc -size -5M
find時間查找

//創建測試文件
[root@xuliangwei ~]# for i in {01..28};do date -s 201802$i && touch file-$i;done

//查找7天以前的文件(不會打印當天的文件)
[root@xuliangwei ~]# find ./ -iname "file-*" -mtime +7

//查找最近7天的文件,不建議使用(會打印當天的文件)

[root@xuliangwei ~]# find ./ -iname "file-*" -mtime -7

//查找第7天文件(不會打印當天的文件)
[root@xuliangwei ~]# find ./ -iname "file-*" -mtime 7

//本地文件保留最近7天的備份文件, 備份服務器保留3個月的備份文件
find /backup/ -iname ".bak" -mtime +7 -delete
find /backup/ -iname "
.bak" -mtime +90 -delete
find用戶查找

//查找屬主是jack
[root@xuliangwei ~]# find /home -user jack
//查找屬組是admin
[root@xuliangwei ~]# find /home -group admin
//查找屬主是jack, 屬組是admin
[root@xuliangwei ~]# find /home -user jack -group admin
//查找屬主是jack, 並且屬組是admin
[root@xuliangwei ~]# find /home -user jack -a -group admin
//查找屬主是jack, 或者屬組是admin
[root@xuliangwei ~]# find /home -user jack -o -group admin
//查找沒有屬主
[root@xuliangwei ~]# find /home -nouser
//查找沒有屬組
[root@xuliangwei ~]# find /home -nogroup
//查找沒有屬主或屬組
[root@xuliangwei ~]# find /home -nouser -o -nogroup
find類型查找

//f 文件
[root@xuliangwei ~]# find /dev -type f
//d 目錄
[root@xuliangwei ~]# find /dev -type d
//l 鏈接
[root@xuliangwei ~]# find /dev -type l
//b 塊設備
[root@xuliangwei ~]# find /dev -type b
//c 字符設備
[root@xuliangwei ~]# find /dev -type c
//s 套接字
[root@xuliangwei ~]# find /dev -type s
//p 管道文件
[root@xuliangwei ~]# find /dev -type p
find權限查找

//精切匹配644權限
[root@xuliangwei ~]# find . -perm 644 -ls

//擁有者至少有011(-wx),組010(-w-),其他人100(r--)
[root@xuliangwei ~]# find /home -perm -324
//查找全局可寫(沒位權限必須高於2 -w-)
[root@xuliangwei ~]# find . -perm -222 -ls

//擁有者至少有r權限, 或者擁有組至少有r權限, 或者匿名至少有w權限
[root@xuliangwei ~]# find /home -perm /442

//包含set uid
[root@xuliangwei ~]# find /usr/sbin -perm -4000 -ls
//包含set gid
[root@xuliangwei ~]# find /usr/sbin -perm -2000 -ls
//包含sticky
[root@xuliangwei ~]# find /usr/sbin -perm -1000 -ls
find處理動作

當查找到一個文件後, 需要對文件進行如何處理, 默認動作 -print

-print //打印
-ls //以長格式打印顯示
-delete //刪除查找到的文件(僅能刪除空目錄)
-exec //後面跟自定義的 shell 命令(標準寫法 -exec \;)
-ok //後面跟自定義的 shell 命令(會提示是否操作)

//打印查詢到的文件
[root@xuliangwei ~]# find /etc -name "ifcfg"
[root@xuliangwei ~]# find /etc -name "ifcfg
" -print
[root@xuliangwei ~]# find /etc -name "ifcfg*" -ls

//拷貝文件
[root@xuliangwei ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;

//-ok會不斷提示
[root@xuliangwei ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;

//刪除文件
[root@xuliangwei ~]# find /etc -name "ifcfg" -exec rm -f {} \;
[root@xuliangwei ~]# find /etc -name "ifcfg
" -delete
find結合xargs

//xargs將查找到結果一個一個的處理
[root@xuliangwei ~]# touch file.txt
[root@xuliangwei ~]# find . -name "file.txt" |xargs rm -f
[root@xuliangwei ~]# find . -name "file.txt" |xargs -I {} cp -rvf {} /var/tmp

Linux系統文件查找