Linux find命令10種使用方法技巧分享

find命令的工作方式是沿著文件層次結構向下遍歷,匹配符合條件的文件,并執(zhí)行相應的操作。
1、根據(jù)文件名或正則表達式匹配搜索
選項-name的參數(shù)指定了文件名所必須匹配的字符串,我們可以將通配符作為參數(shù)使用,“*.txt”匹配所有以.txt結尾的文件名。
[root@localhost test]# touch {data,log,file,File,LOG}_{1,2,3,4,5,6}_{.txt,.pdf,.log,.conf}
[root@localhost test]# find . -name "*.txt" –print
如果想匹配多個條件中的一個,可以使用-o參數(shù)。
選項-iname忽略字母大小寫
選項-path的參數(shù)可以使用通配符來匹配文件路徑或文件。
2、否定參數(shù)
find 用 “!”來否定參數(shù),匹配所有不以.txt結尾的文件名。
[root@localhost test]# find . ! -name "*.txt" –print
3、基于目錄深度的搜索
find命令在使用時會遍歷所有的子目錄,我們可以采用-maxdepth和-mindepth來限制find命令遍歷的深度。
-maxdepth: 指定最大深度;
-mindepth:指定最小深度。
列出當前目錄的所有普通文件,這兩個命令要緊跟在目標路徑之后。
4、根據(jù)文件類型搜索
文件類型 | 類型參數(shù) |
普通文件 | f |
符號文件 | l |
目錄 | d |
字符設備 | c |
塊設備 | b |
套接字 | s |
fifo | p |
5、根據(jù)文件時間進行搜索
Linux文件系統(tǒng)中每一個文件都有三種時間戳
訪問時間(-atime):用戶最近一次訪問文件的時間;
修改時間(-mtime):文件內容最后一次被修改的時間。
變化時間(-ctime):文件元數(shù)據(jù)(metadata,例如權限或所有權)最后一次改變的時間。
-atime,-mtime,-ctime作為時間參數(shù),單位是天,可以使用+表示大于,-表示小于。
[root@localhost ~]# find . -type f -atime 7
#打印出正好在7天前被訪問過的文件
[root@localhost ~]# find . -type f -mtime +7
#打印修改時間大于7天的文件
[root@localhost ~]# find . -type f -ctime -7
#打印出修改時間小于7天的文件
類似的參數(shù)還有,-amin(訪問時間),-mmin(修改時間),-cmin(變化時間),以分鐘為單位。
find另一個漂亮的特性是-newer參數(shù),我們可以指定一個用于比較時間戳的參數(shù)文件,然后找出比參數(shù)文件更新的所有文件。
find . –type f –newer file.txt
p 在當前目錄找出比file.txt修改時間更長的所有文件。
6、基于文件大小的搜索
搜索可以使用的單位
b——塊(512字節(jié)); c——字節(jié); w——字(2字節(jié));
k——千字節(jié) ; M——兆字節(jié); G——吉字節(jié)。
#等于2k的文件
[root@localhost tmp]# find . -type f -size +2k
#大于2k的文件
[root@localhost tmp]# find . -type f -size -2k
#小于2k的文件
7、刪除匹配的文件
-delete可以用來刪除find查找到的匹配文件。
#刪除當前目錄下所有的.swp文件
8、基于文件權限和所有權的匹配
#查找當前目錄權限為644的文件
[root@localhost tmp]# find . -type f -user reed
#查找當前目錄文件所有者為reed的文件
9、結合find 執(zhí)行命令或動作
find命令可以借助選項-exec與其他命令進行結合。
[root@localhost tmp]# find . -type f -user reed -exec chown cathy {} \;
#將當前目錄文件擁有者為reed的文件改為cathy
{ }是一個特殊的字符串,對于每一個匹配的文件,{ }會被替換成相應的文件名。
#將當前目錄大于10天的log文件復制到/data/bk_log目錄
[root@localhost test]# find /tmp/test/ -type f -name "*.txt" -exec printf "Text file: %s\n" {} \;
Text file: /tmp/test/File_6_.txt
Text file: /tmp/test/file_4_.txt
Text file: /tmp/test/data_3_.txt
Text file: /tmp/test/data_1_.txt
#列出目錄的所有txt文件
10、跳過指定的目錄
有時間我們查找時需要跳過一些子目錄
# \( -name "jump_dir" -prune \) 指定要跳過的子目錄的名字
相關文章
- 本文介紹了linux下find命令的用法,舉了十五個find命令的例子,有需要的朋友可以參考下2014-07-12
- 這篇文章主要介紹了Linux Find命令查找指定時間范圍內的文件的例子,需要的朋友可以參考下2014-06-27
linux系統(tǒng)中find命令使用示例(linux查找文件)
這篇文章主要介紹了linux系統(tǒng)中find命令使用示例(linux查找文件),需要的朋友可以參考下2014-04-23linux命令之find命令的12個常用參數(shù)詳解(含具體用法和注意事項)
本文詳細介紹了linux下find命令的一些常用參數(shù)和使用實例以及一些具體用法和注意事項,需要的朋友可以參考下2014-04-09linux系統(tǒng)find命令之xargs使用實例分享
在使用find命令的-exec選項處理匹配到的文件時, find命令將所有匹配到的文件一起傳遞給exec執(zhí)行。但有些系統(tǒng)對能夠傳遞給exec的命令長度有限制,這樣在find命令運行幾分鐘2014-04-09- find是我們很常用的一個Linux命令,但是我們一般查找出來的并不僅僅是看看而已,還會有進一步的操作,這個時候exec的作用就顯現(xiàn)出來了2014-04-08
linux下使用find命令根據(jù)系統(tǒng)時間查找文件用法
這篇文章主要為大家介紹了find 命令有幾個用于根據(jù)您系統(tǒng)的時間戳搜索文件的選項,需要的朋友可以參考下2013-11-18- linux的系統(tǒng)中的文件實在是太多了,怎么樣才能快速而且精確的在linux系統(tǒng)找出你想要的文件呢?Linux 的find命令提供了很強大的功能,學好find命令的使用,可以給你節(jié)省大量2013-09-23
- Linux中查找文件的命令通常為find命令,find命令能幫助我們在使用,管理Linux的日常事務中方便的查找出我們需要的文件2013-08-14
- find命令查找比某個文件新或舊的文件,有需要的朋友可以參考下2013-01-29