公司網(wǎng)站購物平臺建設百度網(wǎng)盤網(wǎng)頁登錄入口
前幾篇文章一一介紹了LINUX進程管理控制命令及網(wǎng)絡層面的知識體系,綜所周知,一個linux系統(tǒng)是由很多文件組成的,那么既然有那么多文件,那我們該如何管理這些文件呢?
Linux中的所有數(shù)據(jù)都是以文件形式存在的,那么所有文件分別被歸類到不同的文件系統(tǒng)中。而文件系統(tǒng)則是一種樹型結(jié)構,通俗的理解為目錄。
在linux系統(tǒng)中,你所做的每一步操作及所執(zhí)行的每個命令都是基于文件系統(tǒng)底層邏輯來呈現(xiàn)出來的。
說到管理linux文件,首先您得先找見它!通過本節(jié)可以了解linux的文件管理第一步:查找文件等。今天這篇文章主要介紹下兩個用來在linux系統(tǒng)中查找文件的工具或者命令程序。
??locate –通過名稱來查找文件
??find ?– 在一個目錄層次結(jié)構中搜索文件
locate - 查找文件的簡單方法
locate 命令程序會執(zhí)行一次快速的路徑名數(shù)據(jù)庫搜索進程,并且輸出結(jié)果是與給定字符串相匹配的路徑名稱。locate 命令程序只能依據(jù)文件名來查找文件。
例如,找到所有名字以“zip”開頭的文件:
[root@linuxprobe?~]$ locate bin/zip
locate 命令程序執(zhí)行搜索路徑名數(shù)據(jù)庫進程,并輸出任一個包含字符串“bin/zip”的路徑名:
/usr/bin/zip
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipsplit
或者結(jié)合其它命令工具,例如grep 命令,來執(zhí)行更全面的搜索:
[root@linuxprobe ~]$ locate zip | grep bin
/bin/bunzip2
/bin/bzip2
/bin/gunzip
/bin/gzip
/usr/bin/funzip
/usr/bin/gpg-zip
/usr/bin/prezip
/usr/bin/prezip-bin
/usr/bin/unzip
/usr/bin/zip
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/bin/zipsplit
擴展知識:
有時候locate命令程序不能正常工作,但是呢第二天它就正常工作了。解決方法:首先轉(zhuǎn)換為超級用戶身份,在提示符下運行updatedb 命令,可以手動運行updatedb 命令程序即可。
目前,不同版本的Linux發(fā)行版中l(wèi)ocate 命令程序有很多演變,不過它們都會擁有一定重疊的選項集合,可通過查看locate 命令的手冊來確定安裝了哪個版本的locate 命令程序。
find - 查找文件的高階之路
find 命令程序支持基于給定的各種屬性搜索查找文件。find 命令程序的魅力所在就是它能夠找到符合特定標準屬性的文件。
- 最簡單的查找方式:
find 命令程序支持接收多個目錄名來執(zhí)行搜索查找。
例如:
[root@linuxprobe ~]$ find ~ ??????//輸出家目錄的路徑名列表
可想而知,查找結(jié)果會產(chǎn)生很大的列表。那我們可以嘗試使用wc 命令程序來計算并顯示出文件的數(shù)量:
[root@linuxprobe ~]$ find ~ | wc
-l46052
find 命令程序支持的常見文件類型測試條件如下:
表: find 文件類型
文件類型 | 描述 |
b | 塊特殊設備文件 |
c | 字符特殊設備文件 |
d | 目錄 |
f | 普通文件 |
l | 符號鏈接 |
- 通過文件大小和文件名搜索查找
例如:
查找所有文件名匹配通配符模式“*.JPG”和文件大小大于1M 的普通文件:
[root@linuxprobe ~]$ find ~ -type f -name "*.JPG" -size +1M | wc -l
237
//引入-name 測試條件,后面跟通配符模式。
//雙引號引起來的作用就是阻止shell 展開路徑名進程。
//引入-size 測試條件,后跟字符串“+1M”。加號“+”代表正在尋找文件大小大于指定數(shù)的文件。若以減號“-”開頭,那就代表查找小于指定數(shù)的文件。若沒有符號意味著“精確匹配這個數(shù)”。字母“M”表明測量單位是兆字節(jié)。測量單位的指定如下表:
表: find 大小單位
字符 | 單位 |
b | 512 個字節(jié)塊。如果沒有指定單位,則這是默認值。 |
c | 字節(jié) |
w | 兩個字節(jié)的字 |
k | 千字節(jié)(1024 個字節(jié)單位) |
M | 兆字節(jié)(1048576 個字節(jié)單位) |
G | 千兆字節(jié)(1073741824 個字節(jié)單位) |
以上列出的只是冰山一角,find 命令手冊有更詳細的說明。
總結(jié):
find 命令程序搜索目錄樹以查找一個文件或一組文件。它遍歷目錄樹并報告與用戶規(guī)范匹配的文件的所有匹配項。查找程序包括非常強大的搜索功能。
locate 程序掃描一個或多個文件名數(shù)據(jù)庫,并顯示任何匹配項。如果文件在上次文件名數(shù)據(jù)庫更新期間存在,則可以將其用作非常快速的查找命令。
當然,linux文件類型是不可或缺的一部分,在Linux中,基本的文件類型有以下三種:
1) 普通文件
普通文件基本包括文本文件、源碼文件、可執(zhí)行文件等。
2) 目錄
目錄可以包含普通文件和特殊文件,目錄相當于Windows系統(tǒng)和Mac 系統(tǒng)中的文件夾。
3) 設備文件
設備文件就是Linux 與外部設備(如光驅(qū),打印機等)進行通信所必需的文件。
關于linux系統(tǒng)文件查找命令的運用魅力不止如此,今天的介紹僅僅一小部分,所以強烈建議大家可以參考下《GNU Findutils 4.9.0》及《linux就該這么學》這兩本書,對于linux系統(tǒng)文件管理層面的介紹很詳細!