1、最強大的搜索命令:find 查找各種文件的命令
2、在文件資料中查找文件:locate
3、搜索命令所在的目錄及別名信息:which
4、搜索命令所在的目錄及幫助文檔路徑:whereis
5、在文件中搜尋字元串匹配的行並輸出:grep
6、分頁顯示一個文件或任何輸出結果:more
7、分頁顯示一個文件並且可以回頭:less
8、指定顯示前多少行文件內容:head
9、指定顯示文件後多少行內容:tail
10、查看一個文件:cat
11、查看文件內容多少字元多少行多少位元組:wc
12、排序文件內容:sort
B. Linux中查找文件夾的命令
Linux中查找文件夾的命令是find命令。
Linux-文件搜索命令find的操作使用方法如下:
1、全盤搜索,也可以指定目錄搜索。find搜索目錄 -name目標名字,find / -name file
C. linux搜索文件
linux里搜索文件或者文件夾的命令如下:
find / -name 文件或文件夾名
/指的是根目錄,如果你能知道文件在哪個具體的目錄下面,使用具體目錄路徑替代/ 即可,這樣會更快。更多Linux詳細知識可參考《Linux就該這么學》。
D. linux查找文件內容命令
搜索、查找文件當中的內容,一般最常用的是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命令功能那麼方便、強大。
E. 在Linux中如何查找文件及方法
可以使用find及local查找。
find:
1.命令格式:
find pathname -options [-print -exec -ok ...]
2.命令功能:
用於在文件樹種查找文件,並作出相應的處理
3.命令參數:
pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print: find命令將匹配的文件輸出到標准輸出。
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。
4.命令選項:
-name 按照文件名查找文件。
-perm 按照文件許可權來查找文件。
-prune 使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那麼-prune將被find命令忽略。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser 查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改時間比文件file1新但比文件file2舊的文件。
-type 查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字元設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以位元組計。-depth:在查找文件時,首先查找當前目錄中的文件,然後再在其子目錄中查找。
-fstype:查找位於某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。
另外,下面三個的區別:
-amin n 查找系統中最後N分鍾訪問的文件
-atime n 查找系統中最後n*24小時訪問的文件
-cmin n 查找系統中最後N分鍾被改變文件狀態的文件
-ctime n 查找系統中最後n*24小時被改變文件狀態的文件
-mmin n 查找系統中最後N分鍾被改變文件數據的文件
-mtime n 查找系統中最後n*24小時被改變文件數據的文件
locate:
1.命令格式:
Locate [選擇參數] [樣式]
2.命令功能:
locate命令可以在搜尋資料庫時快速找到檔案,資料庫由updatedb程序來更新,updatedb是由cron daemon周期性建立的,locate命令在搜尋資料庫時比由整個由硬碟資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)
locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的資料庫內,尋找合乎範本樣式條件的檔案或目錄錄,可以使用特殊字元(如」*」 或」?」等)來指定範本樣式,如指定範本為kcpa*ner, locate會找出所有起始字串為kcpa且結尾為ner的檔案或目錄,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會列出該目錄下包括 子目錄在內的所有檔案。
locate指令和find找尋檔案的功能類似,但locate是透過update程序將硬碟中的所有檔案和目錄資料先建立一個索引資料庫,在 執行loacte時直接找該索引,查詢速度會較快,索引資料庫一般是由操作系統管理,但也可以直接下達update強迫系統立即修改索引資料庫。
3.命令參數:
-e 將排除在尋找的范圍之外。
-1 如果 是 1.則啟動安全模式。在安全模式下,使用者不會看到許可權無法看到 的檔案。這會始速度減慢,因為 locate 必須至實際的檔案系統中取得檔案的 許可權資料。
-f 將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案 放在資料庫中。
-q 安靜模式,不會顯示任何錯誤訊息。
-n 至多顯示 n個輸出。
-r 使用正規運算式 做尋找的條件。
-o 指定資料庫存的名稱。
-d 指定資料庫的路徑
-h 顯示輔助訊息
-V 顯示程式的版本訊息
F. linux怎樣搜索文件或文件夾
linux里搜索文件或者文件夾的命令如下:
find / -name 文件或文件夾名
/指的是根目錄,如果你能知道文件在哪個具體的目錄下面,使用具體目錄路徑替代/ 即可,這樣會更快
G. linux 如何查找文件
find / -name abc.txt ( / :為從根哪個目錄開始查找,abc.txt 嚴格匹配可以加單引號和雙引號)
H. Linux中如何查找文件
查找文件使用find命令,命令格式:find 路徑 -name 文件名
例如要在整個根目錄下查找test.txt文件,find / -name test.txt,需要注意的是必須對要查找的那個目錄有可讀許可權
以上就是關於Linux中查找文件的內容,學習軟體測試也需要學習Linux,如果你想學,可以看黑馬程序員視頻庫的視頻哦!
I. 怎麼在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
J. linux下查找文件內容
GVIM
可以分割窗口實現查找多個文件的功能。不過最好是用命令行這個強大的工具了。
比如查找
/home/znsys/
下所有含
VoIP
的文件名稱:
grep
-l
'VoIP'
/home/znsys/*
比如查找
/home/znsys/
文件夾下的所有第三層目錄內所有文件中包含
「networking"
的行:
如這些目錄:
/home/znsys/client_1/data/
/home/znsys/client_2/data/
/home/znsys/vendor_1/data/
命令為:
grep
-i
/home/znsys/*/data/*
'networking'
搜索
----
whereis
<程序名稱>
查找軟體的安裝路徑
-b
只查找二進制文件
-m
只查找幫助文件
-s
只查找源代碼
-u
排除指定類型文件
-f
只顯示文件名
-B
<目錄>
在指定目錄下查找二進制文件
-M
<目錄>
在指定目錄下查找幫助文件
-S
<目錄>
在指定目錄下查找源代碼
locate
<文件名稱>
在文件索引資料庫中搜索文件
-d
<資料庫路徑>
搜索指定資料庫
updatedb
更新文件索引資料庫
find
[路徑]
<表達式>
查找文件
-name
<表達式>
根據文件名查找文件
-iname
<表達式>
根據文件名查找文件,忽略大小寫
-path
<表達式>
根據路徑查找文件
-ipath
<表達式>
根據路徑查找文件,忽略大小寫
-amin
<分鍾>
過去N分鍾內訪問過的文件
-atime
<天數>
過去N天內訪問過的文件
-cmin
<分鍾>
過去N分鍾內修改過的文件
-ctime
<天數>
過去N天內修改過的文件
-anewer
<參照文件>
比參照文件更晚被讀取過的文件
-cnewer
<參照文件>
比參照文件更晚被修改過的文件
-size
<大小>
根據文件大小查找文件,單位b
c
w
k
M
G
-type
<文件類型>
根據文件類型查找文件。b
塊設備
c
字元設備
d
目錄
p
管道文件
f
普通文件
l
鏈接
s
埠文件
-user
<用戶名>
按歸屬用戶查找文件
-uid
<uid>
按UID查找文件
-group
<群組名>
按歸屬群組查找文件
-gid
<gid>
按GID查找文件
-empty
查找空文件
grep
<字元串>|"<正則表達式>"
[文件名]
在文件中搜索內容