1. 程式人生 > >二周第五次課(12月22日)

二周第五次課(12月22日)

數據庫 類型 whereis path spa 七天 環境變量path tar 實例

二周第五次課(12月22日)
2.23/find命令
2.24/find命令
2.25/ find命令
2.26 文件名後綴

其他搜索文件命令:

· which搜索文件是從環境變量PATH裏找的

· whereis在事先準備好的庫裏搜索

· locate需要安裝mlocate包,之後使用updatedb命令生成一下文件列表路徑數據庫,然後才能搜索。

快捷鍵:

ctrl + l清屏

crtl + d 退出終端

ctrl + c 終止運行或暫停

crtl +u 刪除光標前面所有的

crtl + e光標挪到最後去

crtl + a移到最前面

· find命令

· 文件查找和比較



#find命令:

· 用來在指定目錄下查找文件。

· 任何位於參數之前的字符串都將被視為欲查找的目錄名。

· 如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。

· 並且將查找到的子目錄和文件全部進行顯示。


· 語法:
find(選項)(參數)

· 選項:

#amin<分鐘>:查找在指定時間曾被存取過的文件或目錄,單位以分鐘計算;

#-cmin<分鐘>:查找在指定時間之時被更改過的文件或目錄;

#-atime<24小時數>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算;

#-ctime<24小時數>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算;



#-cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;

#-anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄;

#-daystart:從本日開始計算時間;

#-depth:從指定目錄下最深層的子目錄開始查找;

#-expty:尋找文件大小為0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄;

#-exec<執行指令>:假設find指令的回傳值為True,就執行該指令;

#-follow:排除符號連接; -fprint<列表文件>:此參數的效果和指定“-print”參數類似,但會把結果保存成指定的列表文件;

#-fprint0<列表文件>:此參數的效果和指定“-print0”參數類似,但會把結果保存成指定的列表文件;

#-fprintf<列表文件><輸出格式>:此參數的效果和指定“-printf”參數類似,但會把結果保存成指定的列表文件;

#-fstype<文件系統類型>:只尋找該文件系統類型下的文件或目錄;

#-gid<群組識別碼>:查找符合指定之群組識別碼的文件或目錄;

#-group<群組名稱>:查找符合指定之群組名稱的文件或目錄;

#-help或——help:在線幫助;

#-ilname<範本樣式>:此參數的效果和指定“-lname”參數類似,但忽略字符大小寫的差別;

#-iname<範本樣式>:此參數的效果和指定“-name”參數類似,但忽略字符大小寫的差別;

#-ipath<範本樣式>:此參數的效果和指定“-path”參數類似,但忽略字符大小寫的差別;

#-iregex<範本樣式>:此參數的效果和指定“-regexe”參數類似,但忽略字符大小寫的差別;

#-links<連接數目>:查找符合指定的硬連接數目的文件或目錄;

#-iname<範本樣式>:指定字符串作為尋找符號連接的範本樣式;

#-ls:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出;

#-maxdepth<目錄層級>:設置最大目錄層級;

#-mindepth<目錄層級>:設置最小目錄層級;

#-mmin<分鐘>:查找在指定時間曾被更改過的文件或目錄,單位以分鐘計算;#-mount:此參數的效果和指定“-xdev”相同;

#-mtime<24小時數>:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算;

#-name<範本樣式>:指定字符串作為尋找文件或目錄的範本樣式;

#-newer<參考文件或目錄>:查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;

#-nogroup:找出不屬於本地主機群組識別碼的文件或目錄;

#-noleaf:不去考慮目錄至少需擁有兩個硬連接存在;

#-nouser:找出不屬於本地主機用戶識別碼的文件或目錄;

#-ok<執行指令>:此參數的效果和指定“-exec”類似,但在執行指令之前會先詢問用戶,若回答“y”或“Y”,則放棄執行命令;

#-path<範本樣式>:指定字符串作為尋找目錄的範本樣式;

#-perm<權限數值>:查找符合指定的權限數值的文件或目錄;

#-print:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式為每列一個名稱,每個名稱前皆有“./”字符串;

#-print0:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式為全部的名稱皆在同一行;

#-printf<輸出格式>:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標準輸出。格式可以自行指定;

#-prune:不尋找字符串作為尋找文件或目錄的範本樣式;

#-regex<範本樣式>:指定字符串作為尋找文件或目錄的範本樣式;

#-size<文件大小>:查找符合指定的文件大小的文件;

#-true:將find指令的回傳值皆設為True;

#-typ<文件類型>:只尋找符合指定的文件類型的文件;

#-uid<用戶識別碼>:查找符合指定的用戶識別碼的文件或目錄;

#-used<日數>:查找文件或目錄被更改之後在指定時間曾被存取過的文件或目錄,單位以日計算;

#-user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄;

#-version或——version:顯示版本信息;

#xdev:將範圍局限在先行的文件系統中;

#-xtype<文件類型>:此參數的效果和指定“-type”參數類似,差別在於它針對符號連接檢查。

#參數:
· 起始目錄:查找文件的起始目錄。

#實例:
· 根據文件或者正則表達式進行匹配 .

· 列出當前目錄及子目錄下所有文件和文件夾

#find .


在/home目錄下查找以.txt結尾的文件名

#find /home -name "*.txt"

同上,但忽略大小寫

#find /home -iname "*.txt"

· 當前目錄及子目錄下查找所有以.txt和.pdf結尾的文件

#find . \( -name "*.txt" -o -name "*.pdf" \)

·或

#find . -name "*.txt" -o -name "*.pdf"

· 否定參數:

· 找出/home下不是以.txt結尾的文件

#find /home ! -name "*.txt"

· 根據文件類型進行搜索 :

#find . -type 類型參數


· 類型參數列表:
· f 普通文件、
· l 符號連接
· d 目錄
· c 字符設備
· b 塊設備
· s 套接字
· p Fifo 基於目錄深度搜索

· 根據文件時間戳進行搜索:
#find . -type f 時間戳

· UNIX/Linux文件系統每個文件都有三種時間戳:
· 訪問時間(-atime/天,-amin/分鐘):用戶最近一次訪問時間。
· 修改時間(-mtime/天,-mmin/分鐘):文件最後一次修改時間。
· 變化時間(-ctime/天,-cmin/分鐘):文件數據元(例如權限等)最後一次修改時間。

· 搜索最近七天內被訪問過的所有文件 :
#find . -type f -atime -7

· 搜索恰好在七天前被訪問過的所有文件:
#find . -type f -atime 7

· 搜索超過七天內被訪問過的所有文件:
#find . -type f -atime +7

· 搜索訪問時間超過10分鐘的所有文件:
#find . -type f -amin +10

· 找出比file.log修改時間更長的所有文件:
#find . -type f -newer file.log

· 根據文件大小進行匹配:
#find . -type f -size 文件大小單元

文件大小單元:

· b —— 塊(512字節)
· c —— 字節
· w —— 字(2字節)
· k —— 千字節
· M —— 兆字節
· G —— 吉字節

· 搜索大於10KB的文件:
#find . -type f -size +10k

· 搜索小於10KB的文件
#find . -type f -size -10k

· 搜索等於10KB的文件
#find . -type f -size 10k

常用:

- type - mtime -mmin -size - o -exec - name

linux文件後綴名:

linux文件後綴名並不代表它是一個什麽格式的文件,linux文件後綴名並不嚴謹。

二周第五次課(12月22日)