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