學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > Linux系統(tǒng)中查找文件的命令詳解

Linux系統(tǒng)中查找文件的命令詳解

時間: 佳洲1085 分享

Linux系統(tǒng)中查找文件的命令詳解

  Linux系統(tǒng)中文件目錄復(fù)雜,要找到特定的文件并不容易,下面由學(xué)習(xí)啦小編為大家整理了Linux系統(tǒng)中查找文件的命令詳解,希望對大家有幫助!

  Linux系統(tǒng)中查找文件的命令詳解:1. find

  find是最常見和最強(qiáng)大的查找命令,你可以用它找到任何你想找的文件。

  find的使用格式如下:

  $ find <指定目錄> <指定條件> <指定動作>

  - <指定目錄>: 所要搜索的目錄及其所有子目錄。默認(rèn)為當(dāng)前目錄。

  - <指定條件>: 所要搜索的文件的特征。

  - <指定動作>: 對搜索結(jié)果進(jìn)行特定的處理。

  如果什么參數(shù)也不加,find默認(rèn)搜索當(dāng)前目錄及其子目錄,并且不過濾任何結(jié)果(也就是返回所有文件),將它們?nèi)硷@示在屏幕上。

  find的使用實(shí)例:

  $ find . -name 'my*'

  搜索當(dāng)前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。

  $ find . -name 'my*' -ls

  搜索當(dāng)前目錄中,所有文件名以my開頭的文件,并顯示它們的詳細(xì)信息。

  $ find . -type f -mmin -10

  搜索當(dāng)前目錄中,所有過去10分鐘中更新過的普通文件。如果不加-type f參數(shù),則搜索普通文件+特殊文件+目錄。

  Linux系統(tǒng)中查找文件的命令詳解:2. locate

  locate命令其實(shí)是"find -name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫(/var/lib/locatedb),這個數(shù)據(jù)庫中含有本地所有文件信息。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數(shù)據(jù)庫。

  locate命令的使用實(shí)例:

  $ locate /etc/sh

  搜索etc目錄下所有以sh開頭的文件。

  $ locate ~/m

  搜索用戶主目錄下,所有以m開頭的文件。

  $ locate -i ~/m

  搜索用戶主目錄下,所有以m開頭的文件,并且忽略大小寫。

  Linux系統(tǒng)中查找文件的常用命令實(shí)例

  1.在某目錄下查找名為“elm.cc”的文件

  find /home/lijiajia/ -name elm.cc

  2.查找文件名中包含某字符(如"elm")的文件

  find /home/lijiajia/ -name '*elm*'

  find /home/lijiajia/ -name 'elm*'

  find /home/lijiajia/ -name '*elm'

  3.根據(jù)文件的特征進(jìn)行查詢

  find /home/lijiajia/ -amin -10 #查找在系統(tǒng)中最后10分鐘訪問的文件

  find /home/lijiajia/ -atime -2 #查找在系統(tǒng)中最后48小時訪問的文件

  find /home/lijiajia/ -empty #查找在系統(tǒng)中為空的文件或者文件夾

  find /home/lijiajia/ -group cat # 查找在系統(tǒng)中屬于groupcat 的文件(試了,命令不對。)

  find /home/lijiajia/ -mmin -5 # 查找在系統(tǒng)中最后5 分鐘里修改過的文件

  find /home/lijiajia/ -mtime -1 #查找在系統(tǒng)中最后24 小時里修改過的文件

  find /home/lijiajia/ -nouser #查找在系統(tǒng)中屬于作廢用戶的文件(不明白是什么意思)

  find /home/lijiajia/ -amin 10 #查找在系統(tǒng)中最后10分鐘訪問的文件

  find /home/ftp/pub -user lijiajia #查找在系統(tǒng)中屬于lijiajia這個用戶的文件

  (PS:以上都是在 /home/lijiajia/文件夾下進(jìn)行的操作)

  4.使用混合查找方式查找文件

  find /tmp -size +10000000c -and -mtime +2 #查找/tmp目錄中大于10000000字節(jié)并且在48小時內(nèi)修改的某個文件

  find /tmp -user tom -or -user george #查找/tmp目錄中屬于tom或者george這兩個用戶的文件

  find /tmp ! -usr fred #查找/tmp目錄中不屬于fred的文件

  5.查找并顯示文件

  find /home/lijiajia/ -name 'elm.cc' -ls #在目錄下查找名為“elm.cc”的文件,并顯示這些文件的信息

3636920