溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux使用Find命令查找文件的方法

發(fā)布時間:2020-04-16 11:36:25 來源:億速云 閱讀:307 作者:小新 欄目:建站服務器

本篇文章和大家了解一下 Linux使用Find命令查找文件的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

Linux Find命令是Linux系統(tǒng)管理員工具庫中最強大的工具之一,它允許我們根據(jù)用戶給定的表達式搜索目錄層次結(jié)構(gòu)中的文件和目錄,對每個匹配的文件應用用戶指定的操作。

Linux使用Find命令查找文件的方法

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)容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI