您好,登錄后才能下訂單哦!
本篇文章和大家了解一下 Linux使用Find命令查找文件的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
Linux Find命令是Linux系統(tǒng)管理員工具庫中最強大的工具之一,它允許我們根據(jù)用戶給定的表達式搜索目錄層次結(jié)構(gòu)中的文件和目錄,對每個匹配的文件應用用戶指定的操作。
Linux Find命令
使用find命令根據(jù)文件權(quán)限,類型,日期,所有權(quán),大小等搜索文件。它還可以與其他工具結(jié)合使用,例如grep或sed對這些文件執(zhí)行操作
在討論如何使用find命令之前,我們先來了解一下基本語法:
find [options] [path...] [expression]
說明:
● options屬性:控制符號鏈接,調(diào)試選項和優(yōu)化方法的處理。
● path...屬性:定義了find將搜索文件的起始目錄。
● expression屬性:由“options”,“搜索模式”和“由運算符分隔的操作”組成。
我們來看看下面的例子:
find -L /home/projects/ -name "*.js" -exec chmod 644 {} \;
說明:此命令包含一個參數(shù)-L(options),它允許find命令跟隨符號鏈接,搜索/home/projects/(path ...)下面的整個目錄樹,查找以.js(expression)結(jié)尾的所有文件,并將所有匹配文件的權(quán)限設(shè)置為644。
如何按類型查找文件?
要指定要查找的文件類型,需要使用-type參數(shù)。
可以使用以下描述符指定文件類型:
● f:常規(guī)文件
● d: 目錄
● l:符號鏈接
● c:角色設(shè)備
● b:塊設(shè)備
● p:命名管道(FIFO)
● s:套接字
示例:
如果要查找當前工作目錄中的所有目錄,可以使用:
find . -type d
如果要列出系統(tǒng)類型上的所有字符設(shè)備:
find / -type c
如何按名稱查找文件?
按名稱查找文件可能是find命令最常用的用法。要按名稱查找文件,需要將該-name選項與要搜索的文件的名稱一起傳遞。
示例:
要在/home/linuxize目錄中搜索名為document.pdf的文件,可以使用以下命令:
sudo find /home/linuxize -type f -name document.pdf
如果要運行不區(qū)分大小寫的搜索,可以-name使用-iname以下命令更改選項:
sudo find /home/linuxize -type f -iname document.pdf
說明:上面的命令將匹配Document.pdf,DOCUMENT.pdf ..等。
如何按擴展名查找文件?
按擴展名搜索文件與按名稱搜索文件相同。
例如:
如果要查找以.log.gzinside /var/log/nginx目錄結(jié)尾的所有文件,可以使用:
find /var/log/nginx -type f -name '*.log.gz'
如果要查找與正則表達式不匹配的所有文件,*.log.gz可以使用該-not參數(shù)。例如,要查找不以*.log.gz您結(jié)尾的所有文件,請使用:
find /var/log/nginx -type f -not -name '*.log.gz'
如何按大小查找文件?
要根據(jù)文件大小查找文件,需要將-size參數(shù)與大小條件一起傳遞??梢允褂靡韵潞缶Y指定文件大?。?/p>
● b:512字節(jié)塊(默認)
● c:字節(jié)
● w:雙字節(jié)字
● k:Kilobytes
● M:兆字節(jié)
● G:千兆字節(jié)
例如:
要在/tmp目錄中查找完全1024字節(jié)的所有文件,可以運行以下命令:
find /tmp -type f -size 1024c
find命令還允許我們搜索大于或小于指定大小的文件。例如:
我們可以在當前工作目錄中搜索小于1MB的所有文件,這需要在大小值之前添加減號:
find . -type f -size -1M
如果要搜索大小超過1MB的文件,則需要使用加號+:
find . -type f -size +1M
甚至可以搜索大小范圍內(nèi)的文件。例如,以下命令將查找介于1和2 MB之間的所有文件:
find . -type f -size +1M -size 21M
如何按修改日期查找文件?
find命令還可以根據(jù)上次修改,訪問或更改時間來搜索文件。
與按大小搜索時相同,可以使用加號和減號來指定大于或小于。
例如:
幾天前你修改了一個dovecot配置文件,但你忘了文件名。我們可以很容易地篩選以.conf結(jié)尾的/etc/dovecot/conf.d/目錄中的所有文件,這些文件在過去5天內(nèi)被修改為:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
我們還可以列出30天或更久前修改的/home目錄中的所有文件:
find /home -mtime +30 -daystart
如何按權(quán)限查找文件?
要根據(jù)文件權(quán)限過濾文件,需要使用該-perm選項。
例如:
要在/var/www/html目錄中查找權(quán)限為775的所有文件:
find /var/www/html -perm 644
還可以使用減號-或斜杠/為數(shù)字模式添加前綴。
當斜杠/用作前綴時,至少一個類別(用戶,組或其他類別)必須至少為文件匹配設(shè)置相應的位。
find . -perm /444
說明:搜索對用戶,組或其他人設(shè)置了讀權(quán)限的所有文件。
如果使用減號-作為前綴,則必須至少設(shè)置要匹配的文件。
find . -perm -664
說明:搜索對所有者和組具有讀寫權(quán)限的文件,并且其他用戶可以讀取。
如何按所有者查找文件?
要查找特定用戶或組擁有的文件,可以使用-user和-group選項。
例如,要搜索用戶擁有的所有文件和目錄linuxize,可以運行:
find / -user linuxize
這是更高級的示例,假設(shè)是希望查找用戶www-data擁有的所有文件,并將匹配文件的所有權(quán)從www-data更改為nginx:
find / -user www-data -type f -exec chown nginx {} \;
關(guān)于Linux使用Find命令查找文件的方法就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內(nèi)容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。