您好,登錄后才能下訂單哦!
怎么在Linux中使用find命令查找文本?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
find 命令主要用于查找目錄和文件,可以指定多種參數進行匹配。
用法:find +查找路徑 +命令參數 [輸出形式]
查找路徑:告訴find在哪查找
命令參數:指定要查找的文件屬性,屬性包括多種,類型、名稱、大小、修改時間等等
常用的參數:
-name 按文件名進行查找
-user 按照文件的屬主進行查找
-mtime 按照文件的更改時間來查找,-n 表示文件修改時間距今天n天以內,+n 表示文件修改時間距今天n天以前
-type 按照文件的類型查找,d 表示目錄, f表示文件 ,l 表示符號連接文件
-size 按照文件大小進行查找(需要加單位,K、M、G),+n M 表示查找文件大于n M的文件
-maxdepth 指定查找文件時的最大層級(默認是在指定路徑下的所有子目錄中查找,指定層級后可以現在只在一級目錄或者2級目錄查找)
輸出形式:輸出形式可選,輸出形式有 -print 打印查找到的內容(默認就會打印查找到的內容,因此一般不用),-exec 對查找到的內容做進一步處理(比較常用),形式為:
-exec Linux指令 {} \; {}代表查找到的內容
實例:
find . -maxdepth 1 -name "1.txt" # 直接指定文件名查找 ,-maxdepth 1表示最大查找層級為一級目錄
find . -maxdepth 1 -name "*.txt" # 在當前目錄下查找.txt結尾的文件
find . -maxdepth 1 -name "[0-9].txt" # 查找以數字命名的txt文件
find . -maxdepth 1 -name "[0-9]*.txt" # 查找以數字開頭的文件
find . -maxdepth 1 -mtime -5 # 查找當前目錄下,5天之內有修改過的文件 find . -maxdepth 1 -mtime +5 # 查找當前目錄下,修改時間超過5天的文件 find . -maxdepth 1 -type d # 在當前目錄中查找類型是目錄的文件,最大查找層級一級目錄(會查找隱藏的目錄)
find . -maxdepth 1 -size +10M # 查找當前目錄下大于10M的文件 find . -maxdepth 1 -size -1M # 查找當前目錄下小于1M的文件
find . -maxdepth 1 -name "[a-z].txt" -exec rm -rf {} \; # 查找以一個字母命名的txt文件,進行刪除 find . -maxdepth 1 -name "*.txt" | xargs grep "error" # 打印以txt結尾的文件中,有error的行的內容 find . -maxdepth 1 -name "*.txt" | xargs rm # 刪除當前目錄下txt結尾的文件
xargs 將管道前命令的執行結果當作參數逐個傳遞后管道后的命令
ls [a-z].txt | xargs -n1 -i{} mv {} {}.bak # 將當前目錄中以單個字母命名的txt文件增加一個.bak后綴,-n1意思是一個一個對象的去處理,-i{} 把前面的對象使用{}取代,mv {} {}.bak 相當于 mv a.txt a.txt.bak
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。