Linux中find的使用法?
操作系統:centos7
軟件版本 :find4.6
設備型號:ThinkPad E15
find命令用於查找指定目錄下的檔案,同時也可以調用其它命令執行相應的操作。
find語法格式:find 路徑名稱 選項
find命令選項:
-name 按照檔案名查找檔案。 “名稱”
-perm 按照檔案權限來查找檔案。666 777 等
-user 按照檔案屬主來查找檔案
-group 按照檔案所屬的組來查找檔案
-mtime -n / +n 按照檔案的更改時間來查找檔案,
- n表示檔案更改時間距現在n天以內
+ n表示檔案更改時間距現在n天以前
-type 查找某一類型的檔案
b - 塊設備檔案
d - 目錄
c - 字元設備檔案
p - 管道檔案
l- 符號連結檔案
f - 普通檔案
-size n 查找符合指定的檔案大小的檔案
-exec 對匹配的檔案執行該參數所給出的其他linux命令, 相應命令的形式爲' 命令 {} ;,注意{ }和 ;之間的空格,{}代表查到的內容
例1:查找當前目錄下所有的TXT格式的檔案
[root@xuegod63 ~]# touch a.txt xuegod.txt
[root@xuegod63 ~]# find . -name "*.txt"
。。。
./a.txt
./xuegod.txt
2、按照更改時間或訪問時間等查找檔案
如果希望按照更改時間來查找檔案,可以使用mtime,atime或ctime選項
mtime: 檔案最後一次修改的時間
atime: 最後一次訪問時間
ctime: 檔案的最後一次變化時間,也就是修改時間
例1:在root目錄下查找更改時間在1天以內,被黑客修改的檔案
[root@xuegod63 ~]# find /root/ -mtime -1
對查找內容執行相應命令
-exec 這個選項參數後面可以跟自訂的SHELL命令,格式如下:
例2:把查找到的檔案複製到一個指定的目錄
[root@xuegod63 ~]# touch {1,2,3}.back
[root@xuegod63 mnt]# find /root -name "*.txt" -exec cp {} /opt ;
例3:查找多個類型檔案
find命令中比較符的使用:
-a and 並且
-o or 或者
+ 超過
- 低於
[root@xuegod63 ~]# touch a.pdf back.sh
[root@xuegod63 ~]# find ./ -name "*.sh" -o -name "*.pdf"
[root@xuegod63 ~]# find /etc -size +20k -a -size -50k | wc -l
22
[root@xuegod63 ~]# find /etc -size +20k | wc -l
49
例4: 按權限查找:-perm
[root@xuegod63 ~]# find /bin/ -perm 755 # 等於0755權限的檔案或目錄
[root@xuegod63 ~]# find /bin/ -perm -644 #-perm -644 至少有644權限的檔案或目錄
例5:查找的目錄深度:
-maxdepth 1 #只查找目錄第一層的檔案和目錄
如:查找/bin目錄下權限等於644的檔案
[root@xuegod63 ~]# find /etc/ -maxdepth 1 -perm 644 | more
總結:find命令使用方法和參數
find命令選項:
-name 按照檔案名查找檔案。 “名稱”
-perm 按照檔案權限來查找檔案。666 777 等
-user 按照檔案屬主來查找檔案
-group 按照檔案所屬的組來查找檔案
-mtime -n / +n 按照檔案的更改時間來查找檔案,
- n表示檔案更改時間距現在n天以內
+ n表示檔案更改時間距現在n天以前
-type 查找某一類型的檔案
b - 塊設備檔案
d - 目錄
c - 字元設備檔案
p - 管道檔案
l- 符號連結檔案
f - 普通檔案
-size n 查找符合指定的檔案大小的檔案
-exec 對匹配的檔案執行該參數所給出的其他linux命令, 相應命令的形式爲' 命令 {} ;,注意{ }和 ;之間的空格,{}代表查到的內容