Linux下的find命令,顧名思義,它是在目錄結構中搜索文件,並執行指定的操作。Linux下find命令提供了相當多的命令參數,也就是以何種條件進行查找。
命令格式:find [路徑] [命令參數] [表達式]
默認路徑是當前路徑,默認表達式是 -print; -print:將查找到的文件輸出到標准輸出;
例如:在終端執行命令 find 或者 find. 或者find. -print 這三個命令得到的結果是一樣的 ,都是將當前目錄的所有文件輸出到終端
-exec command {} \;
# 將查到的文件結果執行command操作
-ok和-exec用法相同, 不同之處在於-ok在操作前會詢問用戶
find命令的參數:
1、 -name filename
#查找名為filename的文件
2、 -perm
#按執行權限查找
例如查看執行權限為744的文件,使用-exec ls -l 操作,可以看到返回文件的實際權限
3、-user username
#按文件屬主查找
-nouser
#查找無有效屬主的文件
4、 -group groupname
#按屬組查找,即查找屬於groupname這個組的文件
-nogroup
#查找無有效屬組的文
5、-newer f1
#查找更改時間比f1新的文件
6、-type b/d/c/p/l/f
#查找是塊設備、目錄、字符設備、管道、符號鏈接、普通文件
例如在當前目錄的子目錄levelDB中查找目錄文件(可用於打印目錄結構)
7、-size n[c]
#查找長度為n塊或者n字節的文件
例如查找大小為10k的文件
按時間戳查找
8、–ctime -n +n
#按文件更改時間來查找文件,-n指n天以內,+n指n天以前
查找8天內更改的文件
10、-atime -n +n
#按文件訪問時間來查找文件,-n指n天以內,+n指n天以前
-amin n
#最近n分鐘訪問的文件
例如查看最近5分鐘訪問過的文件
11、-mtime -n +n
#按文件最後修改時間(指的是文件內容修改的時間)來查找文件,-n指n天以內,+n指n天以前需要注意的是:
文件的 create time,即ctime 是在寫入文件、更改所有者、權限或鏈接設置時隨inode 的內容更改而更改的。
因此,更改文件的內容即會更改 mtime 和 ctime,但是文件的 ctime 可能會在 mtime 未發生任何變化時更改 – 在權限更改,但是文件內容沒有變化的情況下。
用ls 命令查看文件的 atime、ctime 和 mtime。
ls -lc filename 列出文件的 ctime
ls -lu filename 列出文件的 atime
ls -l filename 列出文件的 mtime