linux搜索命令
A. linux查找內容命令
find,用於在文件樹中查找文件並作相應的處理
-name:按照文件名查找文件
-perm:按照文件許可權查找文件
-user:按照文件屬主來查找文件
-size:按照指定的文件大小查找文件【+n:大於,-n:小於,n:等於】
-group:按照文件所屬的組來查找文件
-mtime<-n><+n>:按照文件更改時間來查找文件,-n表示n天之內,+n表示n天以前
-newer file1 file2:查找更改時間在file1和file2之間的文件
例如:
find -mtime -2:查找48小時修改過的文件
find -name ".log":查找當前目錄以".log"結尾的文件
find /opt/soft/test -perm 777:查找指定目錄下許可權為777的文件
find -type f -name "*.log":查找當前目錄下以".log"結尾的普通文件
find -type d | sort:查找當前所有目標目錄並排序
find /home/wansw -size +20M:查找大於20M的文件
updatedb:第一次運行前,創建locate資料庫
locate指令,可以快速定位文件路徑,利用事先建立的系統中的所有文件名稱和路徑的locate資料庫,無需遍歷整個文件系統,查詢速度較快,為了保證查詢准確性,需要定期更新。《Linux就該這么學》
grep,用於過濾/搜索指定字元串。可以使用正則表達式,能配合多種命令使用。
用法:grep 【選項】 查找內容 源文件
-A:顯示符合的行及之後的內容
-B:顯示符合的行及之前的內容
-C:顯示符合的行及前後的內容
-c:計算符合的行數目
-n:顯示匹配行和行號
-i:忽略大小寫
規則表達式
:'grep'表示匹配所有以grep開頭的行
'表示匹配所有以grep結尾的行
.:'gr.p'表示匹配'gr'後面接任意字元然後是'p'
:'grep'表示匹配一個或多個空格後緊跟grep的行
[]:[Gg]rep表示匹配Grep與grep
[]:[A-FH-Z]rep表示匹配不以A-F、H-Z開頭並緊跟rep的行
例如(grep命令大多數時候多要和別的命令一起使用才有意義):
ps -ef | grep -c SVN:查找指定的進程的個數
cat test.txt | grep -f test2.txt:從text2.txt中讀取關鍵字後在test.txt中搜索
cat test.txt | grep nf text2.txt:從text2.txt中讀取關鍵字後在text.txt中搜索並顯示行號
grep 'linux' text.txt test2.txt:從多個文件中搜索關鍵字'linux'
cat test.txt | grep -E 'ed|at':顯示包含ed或at的行
B. linux下查找文件的命令
1、最強大的搜索命令:find 查找各種文件的命令
2、在文件資料中查找文件:locate
3、搜索命令所在的目錄及別名信息:which
4、搜索命令所在的目錄及幫助文檔路徑:whereis
5、在文件中搜尋字元串匹配的行並輸出:grep
6、分頁顯示一個文件或任何輸出結果:more
7、分頁顯示一個文件並且可以回頭:less
8、指定顯示前多少行文件內容:head
9、指定顯示文件後多少行內容:tail
10、查看一個文件:cat
11、查看文件內容多少字元多少行多少位元組:wc
12、排序文件內容:sort
C. Linux 中 Grep 命令的常見示例,很全面
Grep 是一個強大的 UNIX 命令,可讓您在文件內容中搜索各種參數。當您進行故障排除或調試時,它特別有用。
grep 命令有大量的選項和用例。您可能永遠不需要或使用所有這些。但是,您最終會在大多數情況下使用少數幾個 grep 命令。
本文列出了最常見的 grep 命令和快速示例:
命令示例:
描述 :不區分大小寫的搜索
命令示例:
描述 :匹配後顯示 n 行
命令示例:
描述 :在匹配前顯示 n 行
命令示例:
描述 :在匹配前後顯示 n 行
命令示例:
描述 :顯示不匹配的行
命令示例:
描述 :計算匹配行數
命令示例:
描述 :僅顯示文件名
命令示例:
描述 :匹配確切的單詞
命令示例:
描述 :匹配正則表達式模式
命令示例:
描述 :搜索二進制文件
命令示例:
描述 :遞歸搜索目錄
您可能已經知道要在文件中搜索特定文本或模式,您必須像這樣使用 grep:
讓我們看看 grep 命令的幾個常見用例。
默認情況下,使用 grep 進行的搜索區分大小寫,-i您可以使用以下選項忽略大小寫匹配:
這樣,grep 將返回與 和 匹配的Holmes行holmes。
默認情況下,您只會看到匹配的行,但是,當您對某些問題進行故障排除時,在匹配行之前和/或之後查看幾行會有所幫助。
您可以使用-A來顯示匹配行之後的行。
下面的命令將顯示匹配的行以及匹配後的 5 行。
同樣,您可以使用該-B選項在匹配行之前顯示行。
下面的命令將在匹配行之前顯示 5 行以及匹配行。
我最喜歡的是該選項-C,因為它顯示了匹配行之前和之後的行。
下面的命令將顯示匹配行之前的 5 行、匹配行和 matchine 行之後的 5 行。
您可以使用 grep 顯示與給定模式不匹配的所有行。此「反轉匹配」與以下-v選項一起使用:
您可以組合-i和-v選項。
-c您可以使用選項獲取與模式匹配的行數,而不是顯示匹配的行。這是小寫的c。
您可以結合-cand-v選項來獲取與給定模式不匹配的行數。您當然可以使用不區分大小寫的選項-i。
要顯示匹配行的行號,您可以使用該-n選項。
您可以對反向搜索執行相同的操作。
您可以提供多個文件供 grep 搜索。
這可能有效,但更實際的示例是搜索特定類型的文件。例如,如果您只想在 shell 腳本中查找字元串(以 .sh 結尾的文件),您可以使用:
您可以使用 grep option執行遞歸搜索-r。它將在當前目錄及其子目錄中的所有文件中搜索給定的模式。
默認情況下,grep 顯示匹配的行。如果您對多個文件運行了搜索,並且只想查看哪些文件包含該字元串,則可以使用該-l選項。
假設您想查看哪些 Markdown 文件包含「手冊」一詞,您可以使用:
默認情況下,grep 將顯示包含給定字元串的所有行。你可能並不總是想要那個。如果您正在搜索單詞「done」,它還會顯示包含「doner」或「abandoned」字樣的行。
要使 grep 僅搜索完整的單詞,您可以使用以下選項-w:
這樣,如果您搜索單詞「done」,它只會顯示包含「done」的行,而不是「doner」或「abandoned」。
您可以使用正則表達式模式為您的搜索提供超級動力。有一個允許使用正則表達式模式的專用選項-e和-E一個允許使用擴展正則表達式模式的選項。
您可以在同一個 grep 搜索中搜索多個模式。如果要查看包含一種模式或另一種模式的行,可以使用 OR 運算符|。
您可以將多個模式與 OR 運算符一起使用。
AND 運算符沒有特定選項。為此,您可以多次使用 grep 和管道重定向。
Grep 默認忽略二進制文件。-a您可以使用該選項使其在二進制文件中搜索,就好像它是文本文件一樣。
D. Linux常用基本命令大全介紹
學習Linux系統,命令是最基礎的一部分,有著很重要的地位,所以入門必須掌握好常用命令。下面由我為大家整理了Linux系統常用的基本命令入門篇,希望對大家有幫助!
Linux系統常用的基本命令入門篇一、基礎命令
1.Linu x的進 入與退出系統
進入Linux系統:
必須要輸入用戶的賬號,在系統安裝過程中可以創建以下兩種帳號:
1.root--超級用戶帳號(系統管理員),使用這個帳號可以在系統中做任何事情。
2.普通用戶--這個帳號供普通用戶使用,可以進行有限的操作。
一般的Linux使用者均為普通用戶,而系統管理員一般使用超級用戶帳號完成一些系統管理的工作。如果只需要完成一些由普通帳號就能完成的任務,建議不要使用超級用戶帳號,以免無意中破壞系統。影響系統的正常運行。
用戶登錄分兩步:第一步,輸入用戶的登錄名,系統根據該登錄名識別用戶;第二步,輸入用戶的口令,該口令是用戶自己設置的一個字元串,對其他用戶是保密的,是在登錄時系統用來辨別真假用戶的關鍵字。
當用戶正確地輸入用戶名和口令後,就能合法地進入系統。屏幕顯示:
[root@loclhost/root] #
這時就可以對系統做各種操作了。注意超級用戶的提示符是“#”,其他用戶的提示符是“$”。
2.修改口令
為了更好的保護用戶帳號的安全,Linux允許用戶隨時修改自己的口令,修改口令的命令是passwd,它將提示用戶輸入舊口令和新口令,之後還要求用戶再次確認新口令,以避免用戶無意中按錯鍵。如果用戶忘記了口令,可以向系統管理員申請為自己重新設置一個。
3.虛擬控制台
Linux是一個真正的多用戶 操作系統 ,它可以同時接受多個用戶登錄。Linux還允許一個用戶進行多次登錄,這是因為Linux和UNIX一樣,提供了虛擬控制台的訪問方式,允許用戶在同一時間從控制台進行多次登錄。虛擬控制台的選擇可以通過按下Alt鍵和一個功能鍵來實現,通常使用F1-F6例如,用戶登錄後,按一下Alt-F2鍵,用戶又可以看到"login:"提示符,說明用戶看到了第二個虛擬控制台。然後只需按Alt-F1鍵,就可以回到第一個虛擬控制台。 一個新安裝的Linux系統默認允許用戶使用Alt-F1到Alt-F6鍵來訪問前六個虛擬控制台。虛擬控制台可使用戶同時在多個控制台上工作,真正體現Linux系統多用戶的特性。用戶可以在某一虛擬控制台上進行的工作尚未結束時,切換到另一虛擬控制台開始另一項工作。
退出系統
不論是超級用戶,還是普通用戶,需要退出系統時,在shell提示符下,鍵入exit命令即可。
4.查看命令幫助信息
man命令
man命令用於查詢命令和程序的使用 方法 和參數。
例如:
man ls
將顯示ls命令的基本格式和使用方法
Linux系統常用的基本命令入門篇二、關機重啟命令
首先,是關機/重啟命令,僅在虛擬機時使用,實際工作中用不到
reboot 一般不跟參數使用,輸入指令即可重啟
shutdown 一般需要跟參數,例:
shutdown -r 延時多少分鍾重啟,一般使用now
shutdown -r now 立即重啟
shutdown -f 強制重啟
跟windows一樣,linux也存在注銷功能
exit
1)halt
halt 可不接參數
halt -f 強制關機
2)poweroff
poweroff 可不接參數使用
poweroff -f 強制關機
3)init 0
4)shutdown 不可單獨使用
shutdown -h 分鍾數 延時多久關機
shutdown -h now 立即關機
Linux系統常用的基本命令入門篇三、vi編輯
vi命令是UNIX操作系統和類UNIX操作系統中最通用的全屏幕純文本編輯器。
Linux中的vi編輯器叫vim,它是vi的增強版(vi Improved),與vi編輯器完全兼容,而且實現了很多增強功能。
vi編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用vi編輯器就必須熟練掌握著兩種模式的切換。
默認情況下,打開vi編輯器後自動進入命令模式。從編輯模式切換到命令模式使用“esc”鍵,從命令模式切換到編輯模式使用“A”、“a”、“O”、“o”、“I”、“i”鍵。
vi編輯器提供了豐富的內置命令,有些內置命令使用鍵盤組合鍵即可完成,有些內置命令則需要以冒號“:”開頭輸入。常用內置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:從編輯模式切換到命令模式;
6 ZZ:命令模式下保存當前文件所做的修改後退出vi;
7 :行號:游標跳轉到指定行的行首;
8 :$:游標跳轉到最後一行的行首;
9 x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的;
10 D:刪除從當前游標到游標所在行尾的全部字元;
11 dd:刪除游標行正行內容;
12 ndd:刪除當前行及其後n-1行;
13 nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字;
14 p:粘貼文本操作,用於將緩存區的內容粘貼到當前游標所在位置的下方;
15 P:粘貼文本操作,用於將緩存區的內容粘貼到當前游標所在位置的上方;
16 /字元串:文本查找操作,用於從當前游標所在位置開始向文件尾部查找指定字元串的內容,查找的字元串會被加亮顯示;
17 ?name:文本查找操作,用於從當前游標所在位置開始向文件頭部查找指定字元串的內容,查找的字元串會被加亮顯示;
18 a,bs/F/T:替換文本操作,用於在第a行到第b行之間,將F字元串換成T字元串。其中,“s/”表示進行替換操作;
19 a:在當前字元後添加文本;
20 A:在行末添加文本;
21 i:在當前字元前插入文本;
22 I:在行首插入文本;
23 o:在當前行後面插入一空行;
24 O:在當前行前面插入一空行;
25 :wq:在命令模式下,執行存檔退出操作;
26 :w:在命令模式下,執行存檔操作;
27 :w!:在命令模式下,執行強制存檔操作;
28 :q:在命令模式下,執行退出vi操作;
29 :q!:在命令模式下,執行強制退出vi操作;
30 :e文件名:在命令模式下,打開並編輯指定名稱的文件;
31 :n:在命令模式下,如果同時打開多個文件,則繼續編輯下一個文件;
32 :f:在命令模式下,用於顯示當前的文件名、游標所在行的行號以及顯示比例;
33 :set nu:在命令模式下,用於在最左端顯示行號;
34 :set nonu:在命令模式下,用於在最左端不顯示行號;
35 :1,3y 復制第一行到第三行
36 :1,3d 刪除第一行到第三行
37 :1,3s/str/str_new/g 替換第一行到第三行中的字元串
38 :1,3s/str/str_new 替換第一行到第三行中的字元串第一個字元
39 :1,3 g/str /d 刪除第一行到第三行中含有這個字元串的行
Linux常用命令一、查詢相關
find
按規則查找某個文件或文件夾,包括子目錄
find . -name '_sh' -- 以.sh結尾的文件
find . -name '_hannel_ -- 包含channel字元的文件
find . -name 'build_ -- 以build開頭的文件
find . -name 'abc??' -- abc後面有兩個字元的文件
grep
查找內容包含指定的範本樣式的文件,Global Regular Expression Print
grep -n pattern files -- 規則 -n表示顯示行號
grep -n 'PostsActivity' AndroidManifest.xmlgrep -n 'd' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字元串的所有地方
grep -n 'aapt' build-channel.xml -- 文件中包含字元串的所有地方,並顯示行號
ps -e | grep java -- 所有java進程
ps -e | grep -i qq --所有qq進程,不區分大小寫
find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml結尾的文件中查找包含‘aapt’關鍵字的地方
ls | grep 'channel' -- 包含channel關鍵字的文件
which
在PATH變數指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果
which zipwhich grep
Linux常用命令二、查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
從指定點開始將文件寫到標准輸出。使用tail命令的-f選項可以方便的查閱正在改變的日誌文件,tail -f filename會把filename里最尾部的內容顯示在屏幕上,並且不斷刷新,使你看到最新的文件內容。
tail -f test.log,循環查看文件內容,Ctrl+c來終止
tail -n 5 test.log,顯示文件最後5行內容
tail -n +5 test.log,從第5行開始顯示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]
more命令和cat的功能一樣都是查看文件里的內容,但有所不同的是more可以按頁來查看文件的內容,還支持直接跳轉行等功能。
more +3 test.log,顯示文件中從第3行起的內容
more -5 test.log,設定每屏顯示行數
ls -l | more -5,每頁顯示5個文件信息
more +/day3 test.log,查找第一個出現"day3"字元串的行,並從該處前兩行開始顯示輸出
less
less [options] [file...]
與more命令一樣,less命令也用來分屏顯示文件的內容。但是二者存在差別:less命令允許用戶向前或向後瀏覽文件,而more命令只能向前瀏覽。用less命令顯示文件時,用PageUp鍵向上翻頁,用PageDown鍵向下翻頁。要退出less程序,應按Q鍵。
less test.log,查看文件
ps -ef | less,查看進程信息並通過less分頁顯示
history | less,查看命令歷史使用記錄並通過less分頁顯示
less test1.log test2.log,瀏覽多個文件,n和p切換文件
watch
watch [options] command
每隔一段時間重復運行一個命令,默認間隔時間是2秒。要運行的命令直接傳給shell(注意引用和轉義特殊字元)。結果會展示為全屏模式,這樣你可以很方便的觀察改變
watch -n 60 date,執行date命令每分鍾一次,輸入^C 退出
watch -d ls -l,查看目錄變化
watch -d ’ls -l | fgrep joe’,想找joe用戶的文件
watch -d 'ls -l|grep scf',監測當前目錄中 scf' 的文件的變化
watch -n 10 'cat /proc/loadavg',10秒一次輸出系統的平均負載
watch -n 1 -d netstat -ant,每隔一秒高亮顯示網路鏈接數的變化
watch -n 1 -d 'pstree | grep http',每隔一秒高亮顯示http鏈接數的變化
Linux常用命令三、文件相關
vi
vi file
按i鍵,進入編輯模式
按esc鍵,進入命令模式
:w 保存文件但不退出vi
:w file 將修改另外保存到file中,不退出vi
:w! 強制保存,不推出vi
:wq 保存文件並退出vi
:wq! 強制保存文件,並退出vi
q: 不保存文件,退出vi
:q! 不保存文件,強制退出vi
:e! 放棄所有修改,從上次保存文件開始再編輯
chmod
change mode,變更文件或目錄的讀、寫、運行許可權
chmod [-cfvR] [--help] [--version] mode file...
mode:許可權設定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是
+ 表示增加許可權、- 表示取消許可權、= 表示唯一設定許可權。
r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。
chmod也可以用數字來表示許可權,語法為:chmod abc file,如chmod 777 file
其中a,b,c各為一個數字,分別表示User、Group、及Other的許可權。 r=4,w=2,x=1
chmod 777 file,等同於 chmod a=rwx file
chmod ug=rwx,o=x file,等同於 chmod 771 file
chmod 4755 filename,可使此程序具有root的許可權
ls -l 可以查看列出當前用戶的文件許可權
zip
zip -r filename.zip filesdir
zip -r test.zip ./_把當前所有文件壓縮到test.zip
zip -r test.zip test,把test文件所有文件及目錄,要是到test.zip
zip -d test.zip test.txt,刪除壓縮文件中test.txt文件
zip -m test.zip ./test.txt,向壓縮文件中test.zip中添加test.txt文件
zip -r test.zip file1 file2 file3 filesdir,處理多個文件和目錄,空格隔開
unzip
unzip zip-file,解壓到當前目錄
unzip -d dst-dir zip-file,解壓到指定的目錄,-d後為指定目錄
unzip -n zip-file,不覆蓋已經存在的文件,-n為不要覆蓋原有的文件
unzip -n -d dst-dir zip-file,解壓到指定的目錄,不覆蓋已經原有的文件
unzip -o -d dst-dir zip-file,-o不必先詢問用戶覆蓋原有文件
unzip -l zip-file,僅查看壓縮文件內所包含的文件
tar
tar cvf test.tar test,把test下所有文件和目錄做備份tar czvf test.tar.gz test,把test下所有文件和目錄做備份並進行壓縮tar xzvf test.tar.gz,把這個備份文件還原並解壓縮tar tvf test.tar | more,查看備份文件的內容,並以分屏方式顯示在 顯示器 上
tar czvf test.tar.gz test --exclude=test/svn,備份壓縮並排除目錄
touch
E. linux如何查找文件
1、使用find命令
Linuxfind命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄或文件。並且將查找到的子目錄和文件全部進行顯示。
語法:find path -option [ -print ] [ -exec -ok command ] {} ;
2、使用locate命令
Linux locate命令用於查找符合條件的文檔,他會去保存文檔和目錄名稱的資料庫內,查找合乎範本樣式條件的文檔或目錄。
一般情況我們只需要輸入locate your_file_name即可查找指定文件。
語法:locate [-d ][--help][--version][範本樣式...]
3、使用which命令
Linux which命令用於查找文件。
which指令會在環境變數$PATH設置的目錄里查找符合條件的文件。
語法:which [文件...]
4、使用whereis命令
Linux whereis命令用於查找文件。
該指令會在特定目錄中查找符合條件的文件。這些文件應屬於原始代碼、二進制文件,或是幫助文件。
該指令只能用於查找二進制文件、源代碼文件和man手冊頁,一般文件的定位需使用locate命令。
語法:whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S<目錄>...][文件...]
F. Linux下怎樣搜索文件
Linux下搜索文件,可以使用find命令。
1、find命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。
2、命令一般格式:
find(選項)(參數)
3、常用參數說明
-amin<分鍾>:查找在指定時間曾被存取過的文件或目錄,單位以分鍾計算;
-anewer<參考文件或目錄>:查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄;
-atime<24小時數>:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算;
-cmin<分鍾>:查找在指定時間之時被更改過的文件或目錄;
-cnewer<參考文件或目錄>查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-ctime<24小時數>:查找在指定時間之時被更改的文件或目錄,單位以24小時計算;
-daystart:從本日開始計算時間;
-depth:從指定目錄下最深層的子目錄開始查找;
-expty:尋找文件大小為0Byte的文件,或目錄下沒有任何子目錄或文件的空目錄;
-exec<執行指令>:假設find指令的回傳值為True,就執行該指令;
-false:將find指令的回傳值皆設為False;
-fls<列表文件>:此參數的效果和指定「-ls」參數類似,但會把結果保存為指定的列表文件;
-follow:排除符號連接;
-fprint<列表文件>:此參數的效果和指定「-print」參數類似,但會把結果保存成指定的列表文件;
-fprint0<列表文件>:此參數的效果和指定「-print0」參數類似,但會把結果保存成指定的列表文件;
-fprintf<列表文件><輸出格式>:此參數的效果和指定「-printf」參數類似,但會把結果保存成指定的列表文件;
-fstype<文件系統類型>:只尋找該文件系統類型下的文件或目錄;
-gid<群組識別碼>:查找符合指定之群組識別碼的文件或目錄;
-group<群組名稱>:查找符合指定之群組名稱的文件或目錄;
-help或——help:在線幫助;
-ilname<範本樣式>:此參數的效果和指定「-lname」參數類似,但忽略字元大小寫的差別;
-iname<範本樣式>:此參數的效果和指定「-name」參數類似,但忽略字元大小寫的差別;
-inum<inode編號>:查找符合指定的inode編號的文件或目錄;
-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」參數類似,差別在於它針對符號連接檢查。
4、示例
1)、在當前目錄下搜索1.sh的文件。通過-name參數來指明要搜索的文件名
G. Linux搜索7天內被訪問過的所有文件命令是什麼
在linux操作系統中,每個文件都有很多的時間參數,其中有三個比較主要,分別是ctime,atime,mtime
modification time(mtime):
status time(ctime)
accesstime(atime)
-mtime -n +n #按文件更改時間來查找文件,-n指n天以內,+n指n天以前
-atime -n +n #按文件訪問時間來查GIN: 0px">
-ctime -n +n #按文件創建時間來查找文件,-n指n天以內,+n指n天以前
當修改文件的內容數據的時候,就會更新這個時間,而更改許可權或者屬性,mtime不會改變,這就是和ctime的區別
當修改文件的許可權或者屬性的時候,就會更新這個時間,ctime並不是create time,給我的感覺更像是change time,但這么說也不完全對,因為只有當更新文件的屬性或者許可權的時候才會更新這個時間,更改內容的話是不會更新這個時間的。《Linux就該這么學》
當使用這個文件的時候就會更新這個時間
7天內被訪問過的所有文件命令
# find / -type f-atime -7
H. Linux find 命令詳解
find 命令的基本結構如下:
find [paths] [expression] [actions]
find 命令接受一個或多個 路徑 ( paths )作為搜索范圍,並在該路徑下 遞歸 地搜索。即檢索完指定的目錄後,還會對該目錄下的子目錄進行檢索,以及子目錄下的子目錄。。。直到到達目錄樹底部。
默認情況下(不帶任何搜索條件),find 命令會返回指定目錄下的 所有文件 ,所以常常需要通過特定的 expression 對結果進行 篩選 。
find 命令默認的 action 是將所有檢索結果列印至標准輸出。可以通過自定義 action ,讓 find 命令對搜索到的結果執行特定的操作。
這里先不做詳細解釋,簡單地測試下 find 命令:
find 命令中的 -name 選項可以根據文件名稱進行檢索( 區分大小寫 )。如需要忽略文件名中的大小寫,可以使用 -iname 選項。
-name 和 -iname 兩個選項都支持 wildcards 。如:
find /usr -name '*.txt' 查找 /usr 目錄下所有文件名以 .txt 結尾的文件
find /usr -name '????' 查找 /usr 目錄下所有文件名剛好為 4 個字元的文件
有些時候,你需要在搜索時匹配某個文件或目錄的 完整路徑 ,而不僅僅是匹配文件名。可以使用 -path 或 -ipath 選項。
如查找 /usr 下所有文件名以 .txt 結尾的文件或目錄,且該文件的父目錄必須是 src 。可以使用以下命令:
find /usr -path '*/src/*.txt'
如果只想搜索得到文件 或 目錄,即不想它們同時出現在結果中。可以使用 -type 選項指定文件類型。
-type 選項最常用的參數如下:
find /usr -type d -name 'python*' 檢索 /usr 下所有文件名以 python 開頭的 目錄
find 命令支持 -empty 選項用來檢索 為空 的文件或目錄。空文件即文件里沒有任何內容,空目錄即目錄中沒有任何文件或子目錄。
find ~ -type d -empty 檢索用戶主目錄下所有的空目錄
find 命令也允許用戶對當前的匹配條件進行 「反義」 (類似於 邏輯非 操作)。
如需要檢索 /usr 下所有文件名 不 以 .txt 為後綴的文件。可以使用以下命令:
find /usr -type f ! -name '*.txt'
也可以「翻轉」任何其他的篩選條件,如:
find /usr -type f ! -empty 檢索 /usr 下所有內容不為空的文件
為了檢索歸屬於特定用戶的文件或目錄,可以使用 -user 選項。
find / -type f -user starky 檢索根目錄下所有屬主為 starky 的文件
類似於 -user 選項, -group 選項則可以根據文件或目錄的 屬組 進行檢索。
有些時候,需要根據文件創建或修改的時間進行檢索。
Linux 系統中,與文件相關聯的時間參數有以下三種:
與此對應的是 find 命令中的 -mtime , -atime 和 -ctime 三個選項。
這三個選項的使用遵循以下示例中的規則:
find /usr -type f -mtime 2 檢索 /usr 下兩天前被修改過的文件
如果覺得 -mtime 等選項以 天 為單位時間有點長,還可以使用 -mmin , -amin , -cmin 三個選項:
find /usr -type f -mtime +50 -mtime -100 檢索 /usr 下 50 到 100 天之前修改過的文件
find /usr -type f -mtime 2 -amin 5 檢索 /usr 下兩天前被修改過且 5 分鍾前又讀取過的文件
-size 選項允許用戶通過文件大小進行搜索(只適用於文件,目錄沒有大小……)。
表示文件大小的單位由以下字元組成:
另外,還可以使用 + 或 - 符號表示 大於 或 小於 當前條件。
find / -size +1G 檢索文件大小高於 1 GB 的文件
find 命令可以使用 -perm 選項以文件許可權為依據進行搜索。
如需要檢索 /usr 目錄下許可權為 rwxr-xr-x 的文件,可以使用以下命令:
find /usr -perm u=rwx,g=rx,o=rx
搜索 /usr 目錄下所有許可權為 r-xr-xr-x (即系統中的所有用戶都只有讀寫許可權)的文件和目錄,可以使用以下命令:
find /usr -perm a=rx
很多時候,我們只想匹配文件許可權的一個 子集 。比如,檢索可以直接被任何用戶執行的文件,即只關心文件的執行許可權,而不用管其讀寫許可權是什麼。
上述的需求可以通過以下命令實現: find / -type f -perm /a=x
其中 a=x 前面的 / 符號即用來表示只匹配許可權的某個子集(執行許可權),而不用關心其他許可權的具體設置。
-perm 選項也支持數字形式的文件許可權標記。
find /usr -perm 644 搜索 /usr 目錄下許可權為 644 (即 rwxr-xr-x )的文件
find 命令默認是以 遞歸 的方式檢索項目的,這有時候會導致得到的結果數量非常巨大。可以使用 -maxdepth 限制 find 命令遞歸的層數。
find / -maxdepth 3 搜索時向下遞歸的層數最大為 3
在之前的例子中有出現多個搜索條件的 組合 以及對某個搜索條件的 反轉 。
實際上 find 命令支持 「and」 和 「or」 兩種邏輯運算,對應的命令選項分別是 -a 和 -o 。通過這兩個選項可以對搜索條件進行更復雜的組合。
此外還可以使用 小括弧 對搜索條件進行 分組 。注意 find 命令中的小括弧常需要用 單引號 包裹起來。因小括弧在 Shell 中有特殊的含義。
如檢索 /usr 下文件名以 python 開頭且類型為目錄的文件
find /usr -type d -name 'python*'
該命令等同於:
find /usr -type d -a -name 'python*'
更復雜的組合形式如:
find / '(' -mmin -5 -o -mtime +50 ')' -a -type f
-delete 選項可以用來刪除搜索到的文件和目錄。
如刪除 home 目錄下所有的空目錄:
find ~ -type d -empty -delete
-exec 選項可以對搜索到的結果執行特定的命令。
如需要將 home 目錄下所有的 MP3 音頻文件復制到移動存儲設備(假設路徑是 /media/MyDrive ),可使用下面的命令:
find ~ -type f -name '*.mp3' -exec cp {} /media/MyDrive ''
其中的 大括弧 ( {} )作為檢索到的文件的 佔位符 ,而分號( ; )作為命令結束的標志。因為分號是 Shell 中有特殊含義的符號,所以需要使用單引號括起來。
每當 find 命令檢索到一個符合條件的文件,會使用其完整路徑取代命令中的 {} ,然後執行 -exec 後面的命令一次。
另一個很重要的用法是,在多個文件中檢索某個指定的字元串。
如在用戶主目錄下的所有文件中檢索字元串 hello ,可以使用如下命令:
find ~ -type f -exec grep -l hello {} ''
創建 Gzip 格式的壓縮文件的命令為: tar -czvf filename.tar.gz <list of files>
現在假設需要將用戶主目錄下所有的 MP3 文件添加到壓縮包 music.tar.gz 中,直觀的感覺是,其命令應為如下形式:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} ''
實際情況是,這樣得到的 music.tar.gz 其實只包含一個 MP3 文件。
原因是 find 命令 每次 發現一個音頻文件,都會再執行一次 -exec 選項後面的壓縮命令。導致先前生成的壓縮包被覆蓋。
可以先讓 find 命令檢索出所有符合條件的音頻文件,再將得到的 文件列表 傳遞給後面的壓縮命令。完整的命令如下:
find ~ -type f -name '*.mp3' -exec tar -czvf music.tar.gz {} +
如果想瀏覽搜索到的文件(目錄)的詳細信息(如許可權和大小等),可以直接使用 -ls 選項。
find / -type file -size +1G -ls 瀏覽所有 1G 以上大小的文件的詳細信息
A Guide to the Linux 「Find」 Command
find 命令手冊 : man find