A. 如何使用find命令查找文件
1.按照文件名查找
(1)find / -name httpd.conf#在根目錄下查找文件httpd.conf,表示在整個硬碟查找
(2)find /etc -name httpd.conf#在/etc目錄下文件httpd.conf
(3)find /etc -name '*srm*'#使用通配符*(0或者任意多個)。表示在/etc目錄下查找文件名中含有字元串『srm』的文件
(4)find . -name 'srm*' #表示當前目錄下查找文件名開頭是字元串『srm』的文件
2.按照文件特徵查找
(1)find / -amin -10 # 查找在系統中最後10分鍾訪問的文件(access time)
(2)find / -atime -2 # 查找在系統中最後48小時訪問的文件
(3)find / -empty # 查找在系統中為空的文件或者文件夾
(4)find / -group cat # 查找在系統中屬於 group為cat的文件
(5)find / -mmin -5 # 查找在系統中最後5分鍾里修改過的文件(modify time)
(6)find / -mtime -1 #查找在系統中最後24小時里修改過的文件
(7)find / -user fred #查找在系統中屬於fred這個用戶的文件
(8)find / -size +10000c#查找出大於10000000位元組的文件(c:位元組,w:雙字,k:KB,M:MB,G:GB)
(9)find / -size -1000k #查找出小於1000KB的文件
B. find 命令的 7 種用法
可以很肯定地說, find 命令是 linux 後台開發人員必須熟知的操作之一,除非您使用的是 Windows Server。
對於技術面試,它也是一個熱門話題。讓我們看一道真題:
這種情況很常見,但令人驚訝的是,並非每個開發人員都能在面試中清楚地寫出這個命令。
答案:首先我們需要使用 cd 命令進入對應的目錄,然後,命令如下:
如果你還沒有完全理解上面的命令,完全不用擔心。本文將介紹 find 命令的 7 個實際用途,您最終會掌握它。如果您已經知道了,那麼閱讀這篇文章對您來說將是一個很好的回顧。
0. 按名稱或正則表達式查找文件
讓我們從最簡單的用法開始。要按特定名稱搜索文件,命令如下:
如何查找所有格式為 pdf 的書籍?使用正則表達式:
默認情況下,find 命令會搜索常規文件,但最好進行指定( -type f )以使所有內容更清晰:
1. 查找不同類型的文件
除了搜索常規文件外,我們還可以通過指定 -type 選項來搜索其他類型的文件。
例如目錄:
或者符號鏈接:
2.按指定的時間戳查找文件
要按指定的時間戳搜索文件,我們需要知道 Linux 系統中的 3 個不同的時間戳:
所以,正如開頭提到的面試題,要搜索 atime 超過一年的文件,我們可以編寫如下命令:
如果我們需要查找 mtime 正好是 5 天前的文件,請不要包含 + ,因為它的意思是「大於」。
顯然, + 表示「大於」, - 表示「小於」。所以我們可以搜索 ctime 在 5~10 天前的文件:
3. 按大小查找文件
-size 選項使我們能夠按指定大小查找文件。我們可以將其計量單位指定為以下約定:
類似於按時間戳查找文件,+ 表示「大於」,- 表示「小於」。例如,要查找大小為 10 MB ~ 1 GB 的文件:
4. 按許可權查找文件
合理控制文件的許可權是 Linux 管理員的一項重要任務。find 命令的 -perm 選項可以幫助我們按指定許可權查找文件:
例如,上面的命令會搜索所有具有 777 許可權的文件,這意味著一個文件對其持有者、組和所有用戶具有所有的讀、寫和可執行許可權。
5. 按所有權查找文件
這個任務很簡單。我們可以使用 -user 選項指定用戶名。例如,以下命令將查找所有屬於 yang 的文件:
6. 在找到文件後執行命令
在大多數情況下,我們希望在找到我們需要的文件後進行後續操作。例如將其刪除,或檢查它們的詳細信息等等。-exec 命令使這些所有事情變得更加容易。
現在,要了解如何使用它,讓我們回到之前提到的面試問題:
上述命令在 -exec 選項後是 rm -rf,其用於刪除文件。{} 是用於查找結果的佔位符。
注意:佔位符 {} 非常重要,尤其是在您想刪除文件時。因為,如果您不使用它,該命令將對所有文件執行(而不是您剛剛通過 find 命令找到的文件)。
做一個嘗試,請在終端上執行以下兩個命令,並檢查它們的結果有何不同:
一個使用佔位符:
另一個不使用:
-exec 選項後面的命令必須以分號(;)結束。眾所周知,轉義字元用於去除單個字元的特殊含義。在 Linux 中,反斜杠 用作轉義字元。所以我們將它用於分號字元。
總結
看完 find 命令的 7 種用法後,開始提到的面試題現在好像很容易解決了。你現在可以直接寫下它的答案並將其解釋清楚嗎?
C. 查找文件的兩種命令
dir find 文件名字比如x.x
如果是隱藏文件 dir /a find x.x
要找今天創建的全部文件
dir /a /s /tc | find "2013-04-27"
D. 電腦中查找文件怎麼找
1.雙擊打開我的電腦,或者是使用快捷鍵Windows+F調出搜索命令對話框。
2.然後在右上角的搜索欄,輸入文件的關鍵詞進行搜索,關鍵詞是文件的名稱
3.在左側的搜索類型里,點擊後會有各類文件的類型可以選擇。
4.還有修改日期的分類,文件名稱不記得,文件類型不知道,那麼可以按修改時間排序搜索。
5.而且這些條件是可以進行疊加的,慢慢的縮小搜索的范圍,很快就找到了文件所在地方。
E. Find命令可以快速搜索電腦中的文件嗎
1、Windows10系統,雙擊此電腦進入文件資源管理器。
2、進入文件資源管理器後,點擊進入本地磁碟C。
3、進入C盤後,在搜索框中輸入A*,然後回車搜索。
4、回車搜索A*後,就可以搜索出C盤中以A開頭的文件了。
首先進行一點說明,find命令是我們在Linux系統中用來進行文件搜索用的最多的命令,功能特別強大。但是我們要說的是盡量少用find命令去執行搜索任務,就算要搜索我們也應該盡量的縮小范圍,也不要在伺服器使用高峰期進行文件搜索,因為搜索也是很占系統資源的。這就需要我們在進行Linux文件整理的時候,盡量規范化,什麼文件放在什麼目錄下都要有比較好的約定。
find這個命令如果要完全講清楚,恐怕得花費很長的時間,而且很多用法我們幾乎用不到,所以這里我就不一一介紹此命令的每一種用法了,我會詳細介紹幾種最常用的用法,大家只需要記住這幾種就完全夠我們日常使用了。
①、命令名稱:find
②、英文原意:
③、命令所在路徑:/bin/find
④、執行許可權:所有用戶
⑤、功能描述:進行各種花式文件搜索
⑥、語法:find【搜索范圍】【匹配條件】
注意:Linux搜索和windows是有明顯區別的,Linux嚴格區分文件大小寫。
一、根據 文件或目錄名稱 搜索
find 【搜索目錄】【-name或者-iname】【搜索字元】:-name和-iname的區別一個區分大小寫,一個不區分大小寫
①、find /etc -name init (精準搜索,名字必須為 init 才能搜索的到)
②、find /etc -iname init (精準搜索,名字必須為 init或者有字母大寫也能搜索的到)
③、find /etc -name *init (模糊搜索,以 init 結尾的文件或目錄名)
④、find /etc -name init??? (模糊搜索,? 表示單個字元,即搜索到 init
F. Linux中如何在指定目錄下查找文件
find顧名思義就是查找的意思,該命令是各種Linux發行版本中比較重要的、常用的一個命令。Linux下的find命令提供相當多的查找條件,功能比較強大,掌握這個命令之後,對平時的系統運維、管理工作可以達到事半功倍的效果。那麼Linux系統中find命令的用法是什麼?具體請看下文:
Linux
find命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件,並且將查找到的子目錄和文件全部進行顯示。
語法格式:
find path -option [ -print ] [ -exec -ok command ] {} \;
參數說明:
find根據下列規則判斷path和expression,在命令列上第一個-(),!之前的部分為path,之後的部分是expression。如果path是空字串則使用目前路徑,如果expression是空字串則使用-print為預設expression。
expression中可使用的選項有二三十個,在此只介紹常用的部分。
-mount,-xedv:只檢查和指定目錄在同一個文件系統下的文件,避免列出其他文件系統中的文件;
-amin n:在過去n分鍾內被讀取過;
-anewer file:比文件file更晚被讀取過的文件;
-atime n:在過去n天內被讀取過的文件;
-cmin n:在過去n分鍾內被修改過;
-cnewer file:比文件file更新的文件;
-ctime n:在過去n天內被修改過的文件;
-empty:空的文件-gid n or -group name:gid是n或是group名稱是name;
-ipath p,-path p:路徑名稱符合p的文件,ipath會忽略大小寫;
-name name,-iname name:文件名稱符合name的文件,iname會忽略大小寫;
-size n:文件大小是n單位,b代表512位元組的區塊,c表示字元數,k表示kilo bytes,w是二個位元組。
-type c:文件類型是C的文件。
G. 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<目錄>...][文件...]
H. 在linux中如何用命令查找文件在哪
需要准備的材料分別是:電腦、linux連接工具。
1、首先連接上linux主機,進入等待輸入指令的linux命令行狀態。
I. linux查找文件路徑的命令,Linux查找文件路徑
1."linux查找文件路徑,為您提供linux查找文件路徑圖文信息,打開linux系統,在linux的桌面的空白處右擊。
2.在彈出的下拉選項里,點擊打開終端。
3.輸入find/-name+文件名,回車運行,即可顯示文件所在路徑。
4.輸入locate+文件名,可以找到所有包含此文件名的文件。
J. 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命令功能那麼方便、強大。