Linux文件與目錄管理(三)

Linux(三)

參考書:鳥哥Linux私房菜-第四版

  1. Linux文件與目錄管理(續(xù)上一篇)

Linux文件與目錄管理

file 查看文件類型

結構file 文件名

[root@node1 ~]$ file b.txt
b.txt: ASCII text
[root@node1 ~]$

文件搜索

which($PATH查詢執(zhí)行檔)

結構: which [-a] command

選項參數(shù)

-a: 將所有PATH目錄中可以找到的指令均列出,而不止第一個被找到的指令名稱

注意:這個指令是根據(jù)PATH環(huán)境變量所規(guī)范的路徑去搜索“執(zhí)行檔”的檔名,所以重點是找出執(zhí)行檔而已。history是內建指令,但是which預設是找PATH內所規(guī)范的目錄,所以可能出現(xiàn)執(zhí)行history缺找不到history指令的情況

[wangtao@node1 ~]$ which cd
/usr/bin/cd
[wangtao@node1 ~]$ which history
/usr/bin/which: no history in (/usr/local/app/mongodb4.4.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[wangtao@node1 ~]$

whereis(特定路徑中查詢文件名)

結構:whereis [-lbmsu] 文件或目錄名

選項參數(shù)

-l: 可以列出whereis會去查詢的幾個主要目錄而已;
-b: 只找出binary格式的文件;
-m: 只找在說明文件manual路徑下的文件;
-s: 只找source來源文件;
-u: 搜尋不在上訴三個項目當中的其他特殊文件.
## 注意:該指令只會在特定的目錄中查詢,如果想知道whereis到的查詢了那些目錄,可以使用whereis -l查看

Locate/updatedb(文檔名)

結構: locate[-ir] keeword

選項參數(shù)

-i: 忽略大小寫的差異;
-c: 不輸出檔名,經(jīng)計算找到的文件數(shù)量;
-l: 僅輸出幾行的意思,例如輸出5行,-l 5;
-S: 輸出locate所使用的數(shù)據(jù)庫文件的相關信息,包括該數(shù)據(jù)庫記錄的文件/目錄數(shù)量等;
-r: 后面可接正規(guī)表示法的顯示方式。

find(強大的查找指令)

結構: find [PATH] [option] [action]

選項參數(shù)

與時間有關的選項:共有-atime,-ctime,-mtime,以-mtime說明

-mtime n: n為數(shù)字,表示在n天之前的(一天之內)被更懂過內容的文件;
-mtime +n: 列出在n天之前(不含n天本身)被更動過內容的文件檔名;
-mtime -n: 列出在n天之內(含n天本身)被更動過內容的文件檔名;
-newer file: file為一個存在的文件,列出比file還要新的文件檔名.

圖示[-4,4,+4]時間線

find_timeline.jpg

與使用者或組名有關的參數(shù)

-uid n: n為數(shù)字,這個數(shù)字是用戶的賬號ID,即UID,這個UID是記錄在/etc/passwd里面與賬號名稱對應的數(shù)字;
-gid n: n為數(shù)字,這個數(shù)字是組名的ID,即GID,這個GID記錄在/etc/group;
-user name: name為使用者賬號名稱,列如wangtao;
-group name: name為組名;
-nouser: 尋找文件的擁有者不存在/etc/passwd的人;
-nogroup: 尋找擁有群組不存在于/etc/group的文件,當自行安裝軟件時,很可能該軟件的屬性當中并沒有文件擁有者,這是可能的,在這個時候,就可以用-nouser與-nogroup搜尋;

與文件權限及名稱有關的參數(shù)

-name filename: 搜索文件名為filename的文件;
-size [+-]SIZE: 搜尋比SIZE還要大(+)或小(-)的文件。SIZE規(guī)格有:c-->byte,k-->Kb,M-->Mb;
-type TYPE: 搜尋文件的類型為TYPE的,類型主要有:一般正規(guī)文件(f),裝置文件(b,c),目錄(d),連結檔(l),socket(s),F(xiàn)IFO(p)等屬性;
-perm mode: 搜索文件權限“剛好等于”mode的文件,這個莫得為類似chmod的屬性值,例如-rwsr-xr-x的屬性為4755;
-perm -mode: 搜尋文件權限“至少擁有mode權限”的文件;
-perm /mode: 搜尋文件權限“包含任一mode權限”的文件。

操作演示

[root@node1 ~]# find /usr/bin/ -name passwd
/usr/bin/passwd
[root@node1 ~]# find /usr/share/awk/ -name *passwd*
/usr/share/awk/passwd.awk
[root@node1 ~]# find /run/udev -type s
/run/udev/control
[root@node1 ~]# find /usr/libexec/ -perm /7000
/usr/libexec/utempter/utempter
/usr/libexec/openssh/ssh-keysign
[root@node1 ~]# find /usr/bin/ /usr/sbin/ -perm /6000
/usr/bin/wall
/usr/bin/chfn
...
[root@node1 ~]# 

額外可進行的動作

或與非操作符: -a表示and的意思,-o表示or,!表示反向選擇(非)
-exec command: command為其他指令,-exec后面可以再接額外的指令來處理搜尋的結果;
-print: 將結果打印到屏幕上,這個動作是預設動作

操作演示(查找/etc目錄下50k-60k之間的文件,列出文件容量大于50k且文件所屬人不是root的檔名):

[root@node1 ~]# find /etc -size +50k -a -size -60k -exec ls -lh {} \;
-rw-r--r--. 1 root root 58K 11月 21 2015 /etc/selinux/targeted/modules/active/base.pp
[root@node1 ~]# find /etc -size +50k -a ! -user root -type f -exec ls -lh {} \;
[root@node1 ~]# 

示例中{},;,-exec這些東西意義如下

find_exec.jpg
{} 代表的是“由find找到的內容”,如上圖所示,find的結果會被放置到{}位置中;
-exec 一直到 \; 是關鍵詞,代表find額外動作的開始(-exec)到結束(\;),在這中間的就是find指令內的額外動作,當前示例是"ls -l {}";
因為;在bash環(huán)境下是由特殊意義的,因此利用反斜杠轉義。

over~~

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容