Linux系統(tǒng)中查找文件的命令詳解
Linux系統(tǒng)中查找文件的命令詳解
Linux系統(tǒng)中文件目錄復(fù)雜,要找到特定的文件并不容易,下面由學(xué)習(xí)啦小編為大家整理了Linux系統(tǒng)中查找文件的命令詳解,希望對(duì)大家有幫助!
Linux系統(tǒng)中查找文件的命令詳解:1. find
find是最常見和最強(qiáng)大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
$ find <指定目錄> <指定條件> <指定動(dòng)作>
- <指定目錄>: 所要搜索的目錄及其所有子目錄。默認(rèn)為當(dāng)前目錄。
- <指定條件>: 所要搜索的文件的特征。
- <指定動(dòng)作>: 對(duì)搜索結(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"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個(gè)數(shù)據(jù)庫(/var/lib/locatedb),這個(gè)數(shù)據(jù)庫中含有本地所有文件信息。Linux系統(tǒng)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫,并且每天自動(dòng)更新一次,所以使用locate命令查不到最新變動(dòng)過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動(dòng)更新數(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小時(shí)訪問的文件
find /home/lijiajia/ -empty #查找在系統(tǒng)中為空的文件或者文件夾
find /home/lijiajia/ -group cat # 查找在系統(tǒng)中屬于groupcat 的文件(試了,命令不對(duì)。)
find /home/lijiajia/ -mmin -5 # 查找在系統(tǒng)中最后5 分鐘里修改過的文件
find /home/lijiajia/ -mtime -1 #查找在系統(tǒng)中最后24 小時(shí)里修改過的文件
find /home/lijiajia/ -nouser #查找在系統(tǒng)中屬于作廢用戶的文件(不明白是什么意思)
find /home/lijiajia/ -amin 10 #查找在系統(tǒng)中最后10分鐘訪問的文件
find /home/ftp/pub -user lijiajia #查找在系統(tǒng)中屬于lijiajia這個(gè)用戶的文件
(PS:以上都是在 /home/lijiajia/文件夾下進(jìn)行的操作)
4.使用混合查找方式查找文件
find /tmp -size +10000000c -and -mtime +2 #查找/tmp目錄中大于10000000字節(jié)并且在48小時(shí)內(nèi)修改的某個(gè)文件
find /tmp -user tom -or -user george #查找/tmp目錄中屬于tom或者george這兩個(gè)用戶的文件
find /tmp ! -usr fred #查找/tmp目錄中不屬于fred的文件
5.查找并顯示文件
find /home/lijiajia/ -name 'elm.cc' -ls #在目錄下查找名為“elm.cc”的文件,并顯示這些文件的信息