⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 搜寻档案和目录.txt

📁 linux下的命令
💻 TXT
字号:
搜尋檔案或目錄: 
檔案的搜尋可就厲害了!因為我們常常需要知道那個檔案放在哪裡,所以來談一談怎麼搜尋吧!在 Linux 底下也有相當優異的搜尋系統呦!通常 find 不很常用的!因為速度慢之外,也很操硬碟!通常我們都是先使用 whereis 或者是 locate 來檢查,如果真的找不到了,才以 find 來搜尋呦!為什麼呢?因為 whereis 與 locate 是利用資料庫來搜尋資料,所以相當的快速,而且並沒有實際的搜尋硬碟,比較省時間啦! 
which   查看可執行檔案的位置 
whereis 查看檔案的位置 
locate  配合資料庫查看檔案位置 
find    實際搜尋硬碟去查詢檔案名稱

--------------------------------------------------------------------------------

which 
語法: [root @test /root ]# which  [檔案名稱] 
參數說明: 
範例: 
[root @test /root]# which passwd 
/usr/bin/passwd 
說明: 
which 的基本功能是『藉由 PATH 這個環境變數的內容,去該路徑內尋找可執行檔』,所以基本的功能在於『尋找執行檔』囉! 
  

--------------------------------------------------------------------------------

whereis 
語法: [root @test /root ]# whereis [-bmsu] [目錄名稱] 
參數說明: 
-b    :只找 binary 的檔案 
-m    :只找在說明檔 manual 路徑下的檔案 
-s    :只找 source 來源檔案 
-u    :沒有說明檔的檔案! 
範例: 
[root @test /root]# whereis passwd 
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.bz2 
將 passwd 相關字眼的檔案或目錄都列出來! 
[root @test /root]# whereis -b passwd 
passwd: /usr/bin/passwd /etc/passwd 
僅列出binary 檔案! 

[root @test /root]# whereis -m passwd 
passwd: /usr/share/man/man1/passwd.1.bz2 
僅搜尋 man page 所在的目錄!
 
說明: 
如果使用 find 太麻煩,而且時間花用的很大!(因為如果你的硬碟比較老舊的話,嘿嘿!有的等的!)這個時候 whereis 就相當的好用了!另外, whereis 可以加入參數來找尋相關的資料,例如如果你是要找可執行檔( binary )那麼加上 -b 就可以啦!例如上面的範例針對 passwd 這支程式來說明!如果不加任何參數的話,那麼就將所有的資料列出來囉!那麼 whereis 到底是使用什麼咚咚呢?為何搜尋的速度會比 find 快這麼多?!其實那也沒有什麼!這是因為 Linux 系統會將系統內的所有檔案都記錄在一個資料庫檔案裡面,而當使用 whereis 或者是底下要說的 locate 時,都會以此資料庫檔案的內容為準,因此,有的時後你還會發現使用這兩個執行檔時,會找到已經被殺掉的檔案!這就是因為他是一個『資料庫』檔案呀!另外,基本上 Linux 每天會針對 Linux 主機進行 updatedb (就是那一個資料庫檔案囉!)的動作,你可以在 /etc/cron.weekly/slocate.cron 這個檔案找到相關的機制呦!當然,也可以直接使用 /usr/bin/updatedb 來更新資料庫檔案呢! 
  

--------------------------------------------------------------------------------

locate 
語法: [root @test /root ]# locate [目錄名稱] 
參數說明: 
範例: 
[root @test /root]# locate root 
……一大堆跟 root 有關字眼的檔案都出來了 @_@ 
[root @test /root]# updatedb        <==立刻更新資料庫
 
說明: 
locate 的使用方式就更簡單了!直接鍵入你要找的檔名即可!但是,這個東西還是有使用上的限制呦!為什麼呢?您會發現使用 locate 來尋找資料的時候特別的快,這是因為 locate 尋找的資料是由『已建立的資料庫 /var/lib/slocate』裡面的資料所搜尋到的,所以不用直接在去硬碟當中存取資料,呵呵!當然是很快速囉!那麼有什麼限制呢?就是因為他是經由資料庫來搜尋的,而資料庫的建立預設是在每個禮拜執行一次,所以當您新建立起來的檔案,卻還在資料庫更新之前搜尋該檔案,那麼 locate 會告訴您『找不到!』呵呵!因為必須要更新資料庫呀! 
  
那麼我到底要建立哪些資料庫呢?是否全部都要建立?似乎不需要,這個時候,你可以自己選擇需要建立檔案資料庫的目錄呢!在 /etc/updatedb.conf 這個內即可設定了! 
  [root @test root]# more /etc/updatedb.conf 
## Linux-Mandrake configuration. 
# 由何處開始查詢資料,當然是由根目錄啦!所以填入 / 即可 
FROM="/" 
# 哪些目錄不想要建立檔案搜尋資料,呵呵!就是那些不要的資料嘛! 
# 忘記的話,記得回上一章去看看內容,就知道為何如此設定了! 
PRUNEPATHS="/proc,/tmp,/var/tmp,/usr/tmp,/net,/afs,/mnt" 

# 安全等級 
#   0 代表關閉安全檢驗,速度上面較快速,但較不安全; 
#   1 啟動安全簡易,這是系統的預設值; 
SECURITY="1" 

# 查詢的時候是否要由螢幕輸出?當然不要,否則多麻煩? 
VERBOSE="NO" 

# 資料庫所在處!這是預設值,不要隨意移動,否則會找不到! 
DATABASE="/var/lib/slocate/slocate.db" 

# 哪些檔案系統我們也不搜尋建立?就是光碟啦、非 Linux 的檔案格式啦, 
# 我們都不要進行搜尋資訊的建立啦! 
PRUNEFS="nfs,smbfs,ncpfs,proc,devpts,supermount,vfat,iso9660,udf,usbdevfs,devfs"
 
  

--------------------------------------------------------------------------------

find 
語法: [root @test /root ]# find [路徑] [參數] 
參數說明: 
1. 時間: 
   -atime n    :在 n*24 小時之前的一天內被 access 即存取過的檔案列出來! 
   -ctime n    :在 n*24 小時之前的一天內被 changed 即改變、新增的檔案或目錄印出 
   -mtime n    :在 n*24 小時之前的一天內被 modified 即修改過的檔案印出 
   -newer file :比 file 還要新的檔案就列出來! 
2. 使用名稱: 
   -gid n      :尋找 群組 ID 為 n 的檔案 
   -group name :尋找群組名稱為 name 的檔案 
   -uid n      :尋找擁有者 ID 為 n 的檔案 
   -user name  :尋找使用者名稱為 name 的檔案 
   -name file  :尋找檔名為 file 的檔案名稱(可以使用萬用字元) 
   -type type  :尋找檔案屬性為 type 的檔案,type 包含了 b, c, d, p, l, s, 
                這些與前一章的屬性相同!例如 l 為 Link 而 d 為路徑之意! 
範例: 
[root @test /root]# find / -name testing            <==尋找檔名為 testing  
[root @test /root]# find / -name 'test*'       <==尋找檔名包含 test 的! 
[root @test /root]# find . -ctime 1                 <==尋找目前目錄下一天前新增的目錄或檔案 
[root @test /root]# find /home/test -newer .bashrc  <==尋找 /home/test 目錄下比 .bashrc 還要新的檔案 
[root @test /root]# find /home -user test       <==尋找 /home 底下擁有者為 test 的檔案 
[root @test /root]# find /dev -type b               <==尋找 /dev 這個目錄下,檔案屬性為 b 的檔案 
說明: 
如果你要尋找一個檔案的話,那麼使用 find 會是一個不錯的主意!他可以根據不同的參數來給予檔案的搜尋功能!例如你要尋找一個檔名為 httpd.conf 的檔案,你知道他應該是在 /etc 底下,那麼就可以使用『 find /etc -name httpd.conf 』嚕!那如果你記得有一個檔案檔名包含了 httpd ,但是不知道全名怎辦?!呵呵,就用萬用字元 * 吧,如上以:『 find /etc -name '*httpd*' 』就可將檔名含有 httpd 的檔案都列出來囉!不過,由於 find 在尋找資料的時後相當的耗硬碟!所以沒事情不要使用 find 啦!有更棒的指令可以取代呦!那就是 whereis 與 locate 囉!!

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -