Linux中find命令基本使用方法
阿新 • • 發佈:2018-12-21
Linux中find命令是系統中查詢檔案的命令,可以幫助使用者快速找出自己所需要的檔案。
- 通過檔名查詢
find -name 檔名
find /etc/ -name passwd ###查詢/etc目錄下的passwd
- 通過檔案巢狀層數查詢
find -maxdepth 層數 ###查詢檔案時最大層數
find -mindepth 層數 ###查詢檔案時最小層數
例;
我們查詢/etc
中所有.conf檔案,可以看到,這些檔案有的在/etc目錄下,有的在/etc目錄的子目錄或者子子目錄中
通過檔案巢狀層數查詢
- 通過檔案所屬組或檔案所有人查詢
find -user 所有人 find -group 所屬組 find -user 所有人 -group 所有組 ###查詢屬於該所有人並且是該所有組的檔案 find -user 所有人 -o -group 所有組 ###查詢屬於該所有人或者屬於該所有組的檔案 find -not -user 所有人 ###查詢不屬於該所有人的其他檔案 find -not -user 所有人1 -o -user 所有人2 ###檢視不屬於所有人1或者屬於所有人2的檔案
例:
先建立一組檔案,為了便於觀察,通過watch -n 1 'ls -lR /mnt'
監控這些檔案
find /mnt/ -user student ###查詢/mnt目錄下屬於student使用者的檔案
find /mnt/ -group test ###查詢/mnt目錄下所有組為test的檔案
find /mnt/ -user student -group test ###查詢屬於student使用者並且是test組的檔案
find /mnt/ -user student -o -group test ###查詢屬於student使用者或者是test組的檔案
find /mnt/ -not -user student ###查詢不屬於student使用者的檔案
- 通過檔案大小查詢
find -size 檔案大小 ###查詢指定檔案大小檔案
find -size -檔案大小 ###查詢小於指定檔案大小的檔案
find -size +檔案大小 ###查詢大於指定檔案大小的檔案
例:
這裡我們先擷取三個大小不同的檔案
dd if=/dev/zero of=/mnt/file1 bs=1 count=10240
dd if=/dev/zero of=/mnt/file2 bs=1 count=20480
dd if=/dev/zero of=/mnt/file3 bs=1 count=40960
在/mnt目錄下查詢大小為20K的檔案
在/mnt目錄下查詢小於20K的檔案
在/mnt目錄下查詢大於20K的檔案
- 按檔案修改時間查詢
find -cmin 1 ###查詢修改時間為1min的檔案
find -cmin -1 ###查詢修改時間小於1min的檔案
find -cmin +1 ###查詢修改時間大於1min的檔案
例:
查詢修改時間為1min的檔案
查詢修改時間為小於1min的檔案
查詢修改時間大於1min的檔案
- 通過檔案型別查詢
find -type 型別
f:檔案| l:軟連結| d:目錄| c:字元裝置| b:快裝置| s:套接字
例:
查詢/mnt下的檔案
查詢/mnt下的目錄
- 通過檔案許可權查詢
find -perm 444 ###查詢許可權值為444的檔案
find -perm /444 ###查詢檔案所有人有讀許可權,或所有組有讀許可權,或者其他人有讀許可權的檔案
find -perm -444 ###檢視檔案所有人有讀許可權,並且所有組有讀許可權,並且其他人有讀許可權的檔案
例:
查詢許可權值為444的檔案
查詢檔案所有人有讀許可權,或所有組有讀許可權,或者其他人有讀許可權的檔案
檢視檔案所有人有讀許可權,並且所有組有讀許可權,並且其他人有讀許可權的檔案
- 查詢到檔案後,如果需要進一步操作,比如複製,檢視,則需要使用到-exec 引數
find -exec 命令 {} \; ###{}表示前面find查找出的檔案
例:
查詢根目錄下屬於mail組中的檔案,將其拷貝到/mnt目錄下
find / -group mail -exec cp -rp {} /mnt \;