国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

通過 find 命令在 Linux 上查找文件和目錄

2024-08-27 23:31:41
字體:
供稿:網(wǎng)友
find 命令由 POSIX 規(guī)范 定義,它創(chuàng)建了一個用于衡量 POSIX 系統(tǒng)的開放標(biāo)準(zhǔn),這包括 Linux、BSD 和 macOS。簡而言之,只要你運(yùn)行的是 Linux、BSD 或 macOS,那么 find 已經(jīng)安裝了。
 
但是,并非所有的 find 命令都完全相同。例如,GNU 的 find 命令有一些 BSD、Busybox 或 Solaris 上 find 命令可能沒有或有但實(shí)現(xiàn)方式不同的功能。本文使用 findutils 包中的 GNU find,因?yàn)樗苋菀撰@得且非常流行。本文演示的大多數(shù)命令都適用于 find 的其他實(shí)現(xiàn),但是如果你在 Linux 以外的平臺上嘗試命令并得到非預(yù)期結(jié)果,嘗試下載并安裝 GNU 版本。
 
按名稱查找文件
你可以借助正則表達(dá)式使用完整或部分的文件名來定位文件。find 命令需要你給出想搜索的目錄;指定搜索屬性選項(xiàng),例如,-name 用于指定區(qū)分大小寫的文件名;然后是搜索字符串。默認(rèn)情況下,搜索字符串按字面意思處理:除非你使用正則表達(dá)式語法,否則 find 命令搜索的文件名正是你在引號之間輸入的字符串。
 
假設(shè)你的 Documents 目錄包含四個文件:Foo、foo、foobar.txt 和 foo.xml。以下是對 foo 的字面搜索:
 
$ find ~ -name "foo"
/home/tux/Documents/examples/foo
你可以使用 -iname 選項(xiàng)使其不區(qū)分大小寫來擴(kuò)大搜索范圍:
 
$ find ~ -iname "foo"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foov
通配符
你可以使用基本的 shell 通配符來擴(kuò)展搜索。例如,* 表示任意數(shù)量的字符:
 
$ find ~ -iname "foo*"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txt
? 表示單個字符:
 
$ find ~ -iname "foo*.???"
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txt
這不是正則表達(dá)式語法,因此 . 在示例中只表示字母“點(diǎn)”。
 
正則表達(dá)式
你還可以使用正則表達(dá)式。與 -iname 和 -name 一樣,也有區(qū)分大小寫和不區(qū)分大小寫的選項(xiàng)。但不一樣的是,-regex 和 -iregex 搜索應(yīng)用于整個路徑,而不僅僅是文件名。這意味著,如果你搜索 foo,你不會得到任何結(jié)果,因?yàn)?foo 與 /home/tux/Documents/foo 不匹配。相反,你必須要么搜索整個路徑,要么在字符串的開頭使用通配符:
 
$ find ~ -iregex ".*foo"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
查找近一周修改過的文件
要查找近一周修改的文件,使用 -mtime 選項(xiàng)以及過去的天數(shù)(負(fù)數(shù)):
 
$ find ~ -mtime -7
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txt
查找近幾天修改的文件
你可以結(jié)合使用 -mtime 選項(xiàng)來查找近幾天范圍內(nèi)修改的文件。對于第一個 -mtime 參數(shù),表示上一次修改文件的最近天數(shù)。第二個參數(shù)表示最大天數(shù)。例如,搜索修改時間超過 1 天但不超過 7 天的文件:
 
$ find ~ -mtime +1 -mtime -7
按文件類型限制搜索
指定查找文件的類型來優(yōu)化 find 的結(jié)果是很常見的。如果你不確定要查找的內(nèi)容,則不應(yīng)該使用此選項(xiàng)。但如果你知道要查找的是文件而不是目錄,或者是目錄而不是文件,那么這可能是一個很好的過濾器。選項(xiàng)是 -type,它的參數(shù)是代表不同類型數(shù)據(jù)的字母代碼。最常見的是:
 
d - 目錄
f - 文件
l - 鏈接文件
s - 套接字
p - 命名管道(用于 FIFO)
b - 塊設(shè)備(通常是硬盤)
下面是一些例子:
 
$ find ~ -type d -name "Doc*"
/home/tux/Documents
$ find ~ -type f -name "Doc*"
/home/tux/Downloads/10th-Doctor.gif
$ find /dev -type b -name "sda*"
/dev/sda
/dev/sda1 

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新源县| 石屏县| 浦江县| 阜南县| 曲松县| 南丹县| 方山县| 华蓥市| 荥经县| 甘孜县| 恩施市| 邻水| 济南市| 荆州市| 广汉市| 阜阳市| 云南省| 丰都县| 淮滨县| 遂平县| 莱西市| 基隆市| 乳山市| 堆龙德庆县| 德昌县| 尚义县| 宁国市| 常宁市| 临海市| 瓦房店市| 舞阳县| 兰考县| 鄂州市| 乌拉特中旗| 青河县| 定陶县| 通江县| 深水埗区| 塔河县| 绵竹市| 高州市|