Linux中的Find指令是Linux系統中很重要也是很棒的指令之一,功能很是得強大。下面我根據實例代碼向你們分享find指令。因爲博客上沒法貼出Linux代碼,我就在截圖中體現出代碼,以及效果。正則表達式
我先本身建立了文件名的test.c的普通文件,咱們用指令mkdir,以及ls查看已經建立了test.c.shell
如今咱們查找它。ide
根據文件名或者正則表達式查找:-name 經過文件名字查找spa
文件名:
3d
1)find ./ -name test.c 查找文件名爲test.c的文件code
2)find 。/ -name 'test.c*' 查找文件名包括test的文件blog
正則表達式:ci
1)find 用 「!」來否認參數 .get
find ./ ! -name '*.c' -print 查找文件名不爲.c的文件,並打印出來。(實際後面的-print可要可不要,效果都會顯示在屏幕上)
博客
2)若是想匹配多個條件中的一個,可使用-o參數。
-a 與條件
-o 或條件
-not 非條件(此參數的功能相似於否認參數‘!’)
2.根據文件大小查找
經過-size選項能夠經過文件大小查找文件。
-size n:[c] 查找文件長度爲n塊的文件,帶有c時表示文件長度以字節計。
b——塊(512字節); c——字節; w——字(2字節);
k——千字節 ; M——兆字節; G——吉字節。
1)find ~ -size +100k 查找比100k大的文件
2)find ~ -size -100k 查找比100k小的文件
3)find ~ -size 100k 查找大小爲100k的文件
注意: – 指比給定尺寸小,+ 指比給定尺寸大。沒有符號表明和給定尺寸徹底同樣大。
3.根據文件深度查找
使用mimdepth,maxdepth限定搜索指定目錄的深度。
-depth:在查找文件時,首先先查找當前的目錄中的文件,而後在其子目錄中查找。
1)find ./ -name test 在root目錄以及子目錄下查找文件名爲test的文件
2)find -maxdepth 2 -name test 在root目錄以及深度爲1的子目錄中查找文件名爲test的文件
3)find -mindepth 1 -maxdepth 5 -name test 在深度爲0的子目錄以及深度爲5的子目錄中查找文件
名爲test的文件
4.根據文件權限查找文件
-perm 按照文件的權限來查找文件。
1)find -perm -g=w 找到具備組讀權限的文件
5.根據文件類型查找文件。
-type 查找某一類型的文件。諸如:
文件類型 類型參數
普通文件 f
符號文件 l
目錄 d
字符設備 c
塊設備 b
套接字 s
管道文件 p
1)find
. -
type
d 查找類型爲目錄的文件
6.根據文件時間來查找
Linux文件系統中每個文件都有三種時間戳:
(1)訪問時間(-atime):用戶最近一次訪問文件的時間;
(2)修改時間(-mtime):文件內容最後一次被修改的時間。
(3)變化時間(-ctime):文件元數據(metadata,例如權限或全部權)最後一次改變的時間。
-atime,-mtime,-ctime做爲時間參數,單位是天。可使用+表示大於,-表示小於(和根據文件的大小查找中的+,-相同)。
咱們在這裏只針對-mtime舉例子了,其餘兩個時間戳也是同樣的。
1)find ./ -mtime -5 查找小於等於5天內修改過的文件
2)find ./ -mtime +2 查找大於2天前修改過的文件
3)find ./ -mtime 1 查找1天前,當天修改過的文件
4)find ./ -newer test.c 查找比test.c還要新的文件