Linux查找文件內容的常用命令方法。
從文件內容查找匹配指定字元串的行:
$ grep "被查找的字元串" 文件名
例子:在當前目錄里第一級文件夾中尋找包含指定字元串的.in文件
grep "thermcontact" */*.in
從文件內容查找與正則表達式匹配的行:
$ grep –e 「正則表達式」 文件名
查找時不區分大小寫:
$ grep –i "被查找的字元串" 文件名
查找匹配的行數:
$ grep -c "被查找的字元串" 文件名
從文件內容查找不匹配指定字元串的行:
$ grep –v "被查找的字元串" 文件名
學習更多linux知識《Linux就該這么學》,從根目錄開始查找所有擴展名為.log的文本文件,並找出包含」ERROR」的行
find / -type f -name "*.log" | xargs grep "ERROR"
例子:從當前目錄開始查找所有擴展名為.in的文本文件,並找出包含」thermcontact」的行
find . -name "*.in" | xargs grep "thermcontact"
2. 在linux中如何用命令查找文件在哪
需要准備的材料分別是:電腦、linux連接工具。
1、首先連接上linux主機,進入等待輸入指令的linux命令行狀態。
3. Linux中如何查找文件
查找文件使用find命令,命令格式:find 路徑 -name 文件名
例如要在整個根目錄下查找test.txt文件,find / -name test.txt,需要注意的是必須對要查找的那個目錄有可讀許可權
以上就是關於Linux中查找文件的內容,學習軟體測試也需要學習Linux,如果你想學,可以看黑馬程序員視頻庫的視頻哦!
4. 如何在linux中查看佔用空間大文件和大文件夾
1.如何查找大文件
通過下面的命令我們可以查看當前目錄下那些文件超過我們設定的閥值。
find -type f -size +100M -print0 | xargs -0 -h,其中100M就是我們設定的閥值,我們可以根據我們的需求來調整這個閥值。
如果我們想對結果做一個排序輸出,我們可以運行下面的命令:find -type f -size +100M
-print0 | xargs -0 -h | sort -nr
2.如何查找大文件夾
通過下面的命令,我們可以查看當前目錄下文件夾的大小
-h --max-depth=1,其中--max-depth是指文件夾的層級,例如1就是指當前目錄下的文件夾,如果我們想對輸出結果排序,可以使用下面的命令: -h --max-depth=1 | sort -nr,如果我們想對上面的結果只輸出前n個結果,可以使用下面的命令: -h --max-depth=1
| sort -nr | head -n
5. Linux 查找文件用什麼命令好
find:查找文件或目錄所在路徑
格式:find
[路徑]
[表達式]
表達式:
-name
:查找名為filename的文件
-perm
:按執行許可權來查找
-empty
:查找空文件或空目錄
-user
:按文件屬主來查找
-group
:按組來查找
-nogroup
:查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser
:查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-mtime
:按文件更改時間來查找文件
-atime
:按文件訪問時間來查找文件
-ctime
:按文件創建時間來查找文件
-newer
:查更改時間更新的文件或目錄
-type
:查是塊設備b、目錄d、字元設備c、管道p、符號鏈接l、普通文件f
-size
n[c]
:查找大小為n塊(512位元組)[或n位元組]的文件
-inum
:根據i節點查找
-depth
:使查找在進入子目錄前先行查找完本目錄
-fstype
:查位於某一類型文件系統中的文件,這些文件系統類型通常可
在/etc/fstab中找到
-mount
:查文件時不跨越文件系統mount點
-cpio
:對匹配的文件使用cpio命令,將他們備份到磁帶設備中
-prune
:忽略某個目錄
-maxdepth
:查詢的目錄深度
-exec
:查找文件並執行後面的命令
find
...
-exec
CMD
{}
\;
-ok
:詢問是否要執行後面的命令
find
...
-ok
CMD
{}
\;
-perm
mode表示嚴格匹配
-perm
-mode
表示mode中轉換成二進制的1必須全部匹配(不管0位)
-perm
+mode
表示mode中轉換成二進制的1必須部分匹配(不管0位)
-ctime/atime/mtime/cmin/amin/mmin:按時間查找
以天為單位的:ctime、atime、mtime
以分鍾為單位的:cmin、amin、mmin
c--change表示文件的屬性被修改過
a--access
m--modify表示文件的內容被修改過
+n表示n天以前
-n表示n天以內
[root@rhel6
~]#
find
/etc/
-name
"host*"
"查詢/etc/目錄(包括子目錄)中以host開頭的文件或目錄"
[root@rhel6
~]#
find
-type
l
"查詢當前目錄下文件類型為鏈接的文件"
[root@rhel6
~]#
find
-size
+10000000c
"查詢當前目錄中>10M的文件"
[root@rhel6
~]#
find
-size
-1K
"查詢當前目錄中<1K的文件"
[root@rhel6
~]#
find
/etc
-name
inittab
-o
-size
+17M
"查詢/etc/目錄中文件名為inittab或文件>17M的文件"
[root@rhel6
~]#
find
/etc
-name
"*.conf"
[-a]
-size
+20k
"查詢/etc/目錄中文件名為*.conf且文件<20k的文件"
[root@rhel6
~]#
find
/etc/*
-name
"*.conf"
-not
-name
"*http*"
"查詢/etc目錄中文件名為*.conf但不包含http的文件"
[root@rhel6
~]#
find
/etc/
-empty
"查詢/etc/目錄中的空文件或空目錄"
[root@rhel6
~]#
find
/var
-user
Oracle
"查詢/var/目錄中屬於用戶oracle的文件或目錄"
[root@rhel6
~]#
find
/home
-group
xfcy
[root@rhel6
~]#
find
-inum
1024
"查詢當前目錄中
i
節點為1024的文件或目錄"
[root@rhel6
~]#
find
-newer
new
"查詢當前目錄中比文件new還新的文件或目錄"
[root@rhel6
~]#
find
/etc/
-nouser
-o
-nogroup
"查詢/etc/目錄中不屬於本地用戶的文件或目錄(危險文件)"
[root@rhel6
~]#
find
/data/
-mmin
-10
"查詢/data/目錄中十分鍾內文件內容被修改過的文件"
[root@rhel6
~]#
find
/proc/
-type
f
-maxdepth
1
"查詢/data/目錄中文件類型為普通文件的文件且不查詢子目錄"
[root@rhel6
~]#
find
/data/
-mtime
-10
-exec
rm
{}
\;
"查詢/data/目錄中十分鍾內內容被修改過的文件並將其刪除"
[root@rhel6
~]#
find
/data/
-mtime
-10
-ok
rm
{}
\;
"查詢/data/目錄中十分鍾內內容被修改過的文件並詢問是否將其刪除(y/n)"
6. 怎麼樣查看linux下佔用空間最大的文件
主要使用find和命令來實現。
1、使用find命令找到大於指定大小的文件:
a.下例中查找大於10G的文件
[root@localhost data]# find / -type f -size +10G
將輸出:
/usr/local/apache2/logs/access_log
b.通過命令查看此文件的大小:
[root@localhost data]# -h /usr/local/apache2/logs/access_log
24G /usr/local/apache2/logs/access_log
c.重復執行find命令來查找大文件,例如:find / -type f -size +5G 找到大於5G的文件。 find / -type f -size +1G 找到大於1G的文件
2、可以遞歸使用 --max-depth=1
7. linux系統中find命令怎麼查找大文件
用-size參數,直接跟大小就行;
例如你要在根目錄下找大於10M的文件
find/-size+10M
或者你要在/home目錄下找大於10k的文件
find/home-size+10K
8. Linux中查找文件夾的命令
Linux中查找文件夾的命令是find命令。
Linux-文件搜索命令find的操作使用方法如下:
1、全盤搜索,也可以指定目錄搜索。find搜索目錄 -name目標名字,find / -name file
9. 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命令功能那麼方便、強大。