搜索、查找文件當中的內容,一般最常用的是grep命令,另外還有egrep, vi命令也能搜索文件裡面內容
1:搜索某個文件裡面是否包含字元串,使用grep "search content" filename1, 例如
$ grep ORA alert_gsp.log
$ grep "ORA" alert_gsp.log
例如我們需要搜索、查找utlspadv.sql文件中包含ORA的字元內容
[oracle@DB-Server admin]$ grep "ORA" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""
-- |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> ...
-- =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> ...
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$
如上所示,這個是一個模糊匹配,其實我是想要查看ORA這類錯誤,那麼我要過濾掉哪一些沒有用的,搜索的內容修改一下即可(當然也可以使用特殊參數,後面有講述),如下所示。
[oracle@DB-Server admin]$ grep "ORA-" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$
7:有些場景,我們並不知道文件類型、或那些文件包含有我們需要搜索的字元串,那麼可以遞歸搜索某個目錄以及子目錄下的所有文件
[oracle@DB-Server ~]$ grep -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view v_$temp_space_header as select * from v$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym v$temp_space_header for v_$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql:create or replace public synonym gv$temp_space_header
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql: FROM gv$temp_space_header
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym v$temp_space_header;
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql:drop public synonym gv$temp_space_header;
[oracle@DB-Server ~]$
8:如果我們只想獲取那些文件包含搜索的內容,那麼可以使用下命令
[oracle@DB-Server ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
[oracle@DB-Server ~]$ grep -H -r "v$temp_space_header" /u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/ | cut -d: -f1 | uniq
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspace.sql
/u01/app/oracle/proct/11.1.0/dbhome_1/rdbms/admin/catspacd.sql
[oracle@DB-Server ~]$
9:如果只想獲取和整個搜索字元匹配的內容,那麼可以使用參數w
你可以對比一下兩者的區別
[oracle@DB-Server admin]$ grep -w "ORA" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$ grep "ORA" utlspadv.sql
-- ORA-XXXXX: Monitoring already started. If for example you want
-- ORA-20111:
-- ORA-20112:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
-- 0 |<PS> =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 0 0 2 99.3% 0% 0.7% ""
-- |<PR> DBS1.REGRESS.RDBMS.DEV.US.ORACLE.COM=> 100% 0% 0% "" |<PR> ...
-- =>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 92 7 99.3% 0% 0.7% "" |<PR> ...
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM 2 0 0 0.E+00
-- |<C> CAPTURE_USER1=>DBS2.REGRESS.RDBMS.DEV.US.ORACLE.COM
-- ORA-20111:
-- ORA-20112:
-- ORA-20100:
-- ORA-20113: 'no active monitoring job found'
-- ORA-20113: 'no active monitoring job found'
[oracle@DB-Server admin]$
10: grep命令結合find命令搜索
[oracle@DB-Server admin]$ find . -name '*.sql' -exec grep -i 'v$temp_space_header' {} ; -print
create or replace view v_$temp_space_header as select * from v$temp_space_header;
create or replace public synonym v$temp_space_header for v_$temp_space_header;
create or replace view gv_$temp_space_header as select * from gv$temp_space_header;
create or replace public synonym gv$temp_space_header
FROM gv$temp_space_header
./catspace.sql
drop public synonym v$temp_space_header;
drop public synonym gv$temp_space_header;
./catspacd.sql
[oracle@DB-Server admin]$
11: egrep -w -R 'word1|word2' ~/klbtmp
12: vi命令其實也能搜索文件裡面的內容,只不過沒有grep命令功能那麼方便、強大。
B. linux 查找命令 的選項有哪些
查找命令 find
格式 find 路徑 選項 表達式 [ -exiec -ok ....] 指令 {} \;
選項
1 -name 按文件名字查找
後接文件名
2 - type 按類型查找
b:塊設備文檔
d:目錄
c:字元設備文檔
P:管道文檔
l:符號鏈接文檔
f:普通文檔
3 -size 根據文件大小查找
後面接 大小 如 10M
4 -perm 根據文件的許可權尋找文件
後面接許可權值
5 -user 根據文件擁有者尋找文件
後面接文件所有者
還不懂 在問我
C. linux操作系統利用find 命令如何查找某個目錄的位置
1、linux命令如果記不得,可以使用man命令來查看某個命令的使用。但對應初學者往往看不懂或者不知道什麼場景下使用
(3)linux查找命令擴展閱讀
Linux簡介:
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
D. linux下的怎麼查看所有的命令
你用man 或--help 或者info就可以 比如查看 adser你就輸入
man adser 這個很全 而且有例子
adser --help 這個告訴你一些常用參數
info adesr
E. 怎麼在Linux中查找某個文件
在 Linux 中查找文件有兩種方法。一種是使用 find 命令,另外一種是使用 locate 命令。
1、Find 命令
使用 Linux find 命令可以用不同的搜索標准如名字、類型、所屬人、大小等來搜索目錄樹。基本語法如下:
#findpathexpressionsearch-term
下面是使用 find 命令根據文件名來查找特定文件的一個例子:
#find-nametest.file
命令會搜索整個目錄樹來查找名為 test.file 的文件,並且會提供其存放位置。你可以使用你 Linux 上一個存在的文件名來嘗試一下。
find 命令有時會花費幾分鍾來查找整個目錄樹,尤其是如果系統中有很多文件和目錄的話。要顯著減少時間,你可以指定搜索的目錄。比如,如果你知道 /var 中存在 test.file,那就沒有必要搜索其它目錄。這樣,你可以使用下面的命令:
#find/var-nametest.file
find 還可以根據時間、大小、所屬人、許可權等選項搜索文件。要了解更多關於這些選項的信息,你可以使用查看** Linux find 命令**的手冊。
#manfind
2、locate 命令
要在Linux中使用locate命令,首先需要安裝它。
如果你正在使用 Ubuntu,運行下面的命令來安裝 locate:
#apt-getupdate#apt-getinstallmlocate
如果你使用的是 CentOS ,運行下面的命令來安裝 locate:
#yuminstallmlocate
locate 是一種比 find 更快的方式,因為它在資料庫中查找文件。要更新搜索資料庫,運行下面的命令:
#updatedb
使用 locate 查找文件的語法:
#locatetest.file
就像 find 命令一樣,locate 也有很多選項來過濾輸出。要了解更多你可以查看Linux Locate 命令的手冊。
#manlocate
F. linux下vim 查找命令
linux下vim 查找命令:
/text --查找text, 按n查找下一個, N查找上一個
?text --查找text(反向查找), 按n查找下一個, N查找上一個
*/# --查找游標當前的單詞,相當於/text
:set ignorecase --查找忽略大小寫
:set noignorecase --查找不忽略大小寫
:nohlsearch --關閉當前的高亮顯示,當再次查找時恢復高亮
:set incsearch --逐步搜索模式,對當前鍵入的字元進行查找,不必等輸入完成
:set wrapscan --重新搜索,當搜索到文件頭或尾時,返回重新搜索
(6)linux查找命令擴展閱讀:
1、文件窗口:
:open file --在當前窗口打開新文件
:split file --在新窗口打開文件
:new file --用新窗口打開文件,同 :split file
:bn --切換到下一個文件
:bp --切換到上一個文件
:args --查看當前打開的文件列表(當前正在編輯的文件會用[]括起來)
:e ftp://192.168.10.76/abc.txt
:e qadrive est.txt --打開遠程文件
:split --打開一個新窗口,游標停在頂層的窗口上
:new --打開一個新窗口,游標停在頂層的窗口上
:vsplit --橫向打開窗口。
Ctrl+ww --移動到下一個窗口
Ctrl+wj --移動到下方的窗口
Ctrl+wk --移動到上方的窗口
2、其他命令:
Esc/Ctrl+[ -- 鍵入命令
:!command --執行shell命令
:suspend/Ctrl+Z --掛起vim,回到shell,fg 返回vim
:!perl -c script.pl --檢查perl腳本語法,不用退出vim
:!perl script.pl --執行perl腳本, 不用退出vim
:help --顯示幫助文檔
:help i --顯示i的幫助文檔(:特殊鍵用<>, -t:啟動參數用-)
3、編輯命令:
插入:
i --在當前位置插入
A --在當前行尾插入
I --在當前行首插入
o --在當前行後插入一行
O --在當前行前插入一行
拷貝粘貼剪切:
yy --拷貝當前行
2yy --拷貝當前行開始的2行
p --在當前游標後粘貼
P --在當前行前粘貼
:1,10 co 20 --將1-10行插入到第20行之後。
:1,$ co $ --將整個文件復制一份並添加到文件尾部
v --進入選擇模式,相當於在Windows下按住 Shift選擇
V --進入選擇模式,整行選擇
ddp --交換當前行和其下一行
2dd --剪切當前行之後的2行
:1,10d --將1-10行剪切
:1, 10 m 20 --將第1-10行移動到第20行之後
替換:
ra --將當前游標所在字元替換為a
s/old/new/ --用old替換new,替換當前行的第一個匹配
s/old/new/g --用old替換new,替換當前行的所有匹配
%s/old/new/ --用old替換new,替換所有行的第一個匹配
%s/old/new/g --用old替換new,替換所有匹配
:10,20 s/^/text/g --在第10行到第20行每行前面加上text(:3,5 s/^/#/g --注釋3-5行, :3,5 s/^#//g
--解除3-5行的注釋, :1,$ s/^/#/g --注釋整個文檔, :%s/^/#/g --注釋整個文檔)
ddp --交換游標所在行和下一行
移動:
h --左移一個字元(5h --左移5個字元)
l --右移一個字元(5l --右移5個字元)
k --上移一個字元(5k --上移5個字元)
j --下移一個字元(5j --下移5個字元)
w --向後移動一個單詞(5w --向後移動5個單詞)
b --向前移動一個單詞(5b --向前移動5個單詞)
e --同 w ,游標停在單詞尾部
ge --同 e ,游標停在單詞尾部
^ --移動到本行第一個非空白字元
0 --移動到本行第0個字元
--同0
$ --移動到行尾(3$ --移動到下面3行的行尾)
gg --移動到文件頭(10gg --移動到第10行首)
[[ --同 gg
G --移動到文件尾(10G --移動到第10行尾)
]] --同 G
fx --移動到本行游標後第一個為x的字元(3fx --移動到本行游標後第3個為x的字元)
Fx --同 fx ,反向查找
:20 --跳到20行行首
Ctrl+e --向下滾動一行
Ctrl+y --向上滾動一行
Ctrl+d --向下滾動半屏
Ctrl+u --向上滾動半屏
Ctrl+f --向下滾動一屏
Ctrl+b --向上滾動一屏
撤銷:
u --撤銷
U --撤銷對整行的操作
Ctrl+r --撤銷剛才的撤銷
刪除:
x --刪除當前字元(3x --刪除當前游標開始向後三個字元)
X --刪除當前字元的前一個字元, 同 dh
dl --刪除當前字元, 同 x
dh --刪除前一個字元
dd --刪除當前行
dj --刪除上一行
dk --刪除下一行
10d --刪除當前行開始的10行。
D --刪除當前字元至行尾, 同 d$
kdgg --刪除當前行之前所有行(不包括當前行)
:1,10d --刪除1-10行
:11,$d --刪除11行及以後所有的行
:1,$d --刪除所有行
J--刪除兩行之間的空行, 合並兩行
退出
:wq --保存並退出
ZZ --保存並退出
:q! --強制退出並忽略所有更改
:e! --放棄所有修改,並打開原來文件
:close --關閉窗口,最後一個窗口不能使用此命令,可以防止意外退出vim
:q --如果是最後一個被關閉的窗口,那麼將退出vim
G. 在Linux下面的某一個文件的查找命令
可以使用find命令。例如:find test . 就是在當前目錄下查找test文件
find詳細描述:命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。
語法:find(選項)(參數)
選項:
-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編號的文件或目錄;-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」參數類似,差別在於它針對符號連接檢查。
參數:起始目錄:查找文件的起始目錄。
H. Linux查詢命令
grep、fgrep和egrep命令
這組命令以指定模式搜索文件,並通知用戶在什麼文件中搜索到與指定的模式匹配的字元串,並列印出所有包含該字元串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個指定的模式;egrep命令檢索擴展的正則表達式(包括表達式組和可選項);fgrep命令檢索固定字元串,它不識別正則表達式,是快速搜索命令。
語法:
grep [選項] [查找模式] [文件名1,文件名2,……]
egrep [選項] [查找模式] [文件名1,文件名2,……]
fgrep [選項] [查找模式] [文件名1,文件名2,……]
這組命令各選項的含義為:
- E 每個模式作為一個擴展的正則表達式對待。
- F 每個模式作為一組固定字元串對待(以新行分隔),而不作為正則表達式。
- b在輸出的每一行前顯示包含匹配字元串的行在文件中的位元組偏移量。
- c 只顯示匹配行的數量。
- i 比較時不區分大小寫。
- h 在查找多個文件時,指示grep不要將文件名加入到輸出之前。
- l 顯示首次匹配串所在的文件名並用換行符將其隔開。當在某文件中多次出現匹配串時,不重復顯示此文件名。
- n 在輸出前加上匹配串所在行的行號(文件首行行號為1)。
- v 只顯示不包含匹配串的行。
- x 只顯示整行嚴格匹配的行。
- e expression 指定檢索使用的模式。用於防止以「-」開頭的模式被解釋為命令選項。
- f expfile 從expfile文件中獲取要搜索的模式,一個模式佔一行。
對該組命令的使用還需注意以下方面:
在命令後鍵入搜索的模式,再鍵入要搜索的文件。其中,文件名列表中也可以使用特殊字元,如「*」等,用來生成文件名列表。如果想在搜索的模式中包含有空格的字元串,可以用單引號把要搜索的模式括起來,用來表明搜索的模式是由包含空格的字元串組成。否則,Shell將把空格認為是命令行參數的定界符,而grep命令將把搜索模式中的單詞解釋為文件名列表中的一部分。在下面的例子中,grep命令在文件example中搜索模式「text file」。
$ grep 'text file' example
用戶可以在命令行上用Shell特殊字元來生成將要搜索的文件名列表。在下面的例子中,特殊字元「*」用來生成一個文件名列表,該列表包含當前目錄下所有的文件。該命令將搜索出當前目錄下所有文件中與模式匹配的行。
$ grep data *
特殊字元在搜索一組指定的文件時非常有用。例如,如果想搜索所有的C程序源文件中特定的模式,您可以用「*.c」來指定文件名列表。假設用戶的 C程序中包含一些不必要的轉向語句(goto語句),想要找到這些語句,可以用如下的命令來搜索並顯示所有包含goto語句的代碼行:
$ grep goto *.c
I. 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的文件
locate指令,可以快速定位文件路徑,利用事先建立的系統中的所有文件名稱和路徑的locate資料庫,無需遍歷整個文件系統,查詢速度較快,為了保證查詢准確性,需要定期更新。《Linux就該這么學》
updatedb:第一次運行前,創建locate資料庫
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的行