1. 程式人生 > >Linux的find命令與文件名後綴

Linux的find命令與文件名後綴

centos find命令

find命令:

find命令是用於搜索文件的,which是在環境變量中搜索,whereis是在準備好的庫裏搜索,locate是通過數據文件進行搜索。

在最小化安裝的系統中一般locate命令是需要自己安裝的,,安裝的命令是:yun install -y mlocate

技術分享


安裝完後,這時locate命令還無法使用,因為locate依賴的數據文件還沒有生成,這個文件相當於這個命令的數據庫,你系統上文件的路徑都會存放在這裏,然後locate命令就是通過這個文件去搜索你指定的文件,這時需要使用updatedb命令生成一下此數據文件,這個命令也可以用於更新此文件,一般此文件會在淩晨四點自動更新:

技術分享

技術分享


從搜索結果可以看出,只要是帶有Test1的文件路徑都會被檢索出來,這屬於是一種模糊搜索,並不是精確搜,所以locate命令使用的比較少。

最常使用的是find命令,find最簡單的用法是指定一個範圍這個範圍可以是系統目錄或文件夾,然後指定具體的文件名稱,例如我要在

etc目錄下找sshd_config文件:

技術分享


使用通配符*可以進行模糊搜索:

技術分享


指定尋找的是目錄需要加-type d,指定尋找的是文件則需要加-type f(-)-type表示的就是文件類型,所以可以使用-type這個條件參數指定所要檢索的文件類型:

技術分享


指定尋找的是軟鏈接文件需要加-type l

技術分享


指定尋找的是塊設備文件需要加-type b

技術分享


指定尋找的是字符串設備文件需要加-type c

技術分享


指定尋找的是通信文件需要加-type s

技術分享


stat命令是查看一個文件或目錄的詳細信息的:技術分享技術分享

更改了文件的內容-ctime一定會改變,但改文件的權限-mtime是不會改變的。


find命令中的-atime選項是用來指定所要查找的文件的最近訪問時間,例如我要在root目錄中找一天以內訪問過的文件,或一天以外訪問過的文件:

find /root/ -type f -atime -1 //一天以內

技術分享


find /root/ -type f -atime +1 //一天以外

技術分享


find命令中的-mtime選項是用來指定所要查找的文件的最近更改或創建時間,例如我要在root目錄中找一天以內更改過的文件,或一天以外更改過的文件:

find /root/ -type f -mtime -1 //一天以內

技術分享


find /root/ -type f -mtime +1 //一天以外

技術分享


find命令中的-ctime選項是用來指定所要查找的文件的最近改動時間,例如我要在root目錄中找一天以內改動過的文件,或一天以外改動過的文件:

find /root/ -type f -ctime -1 //一天以內

技術分享


find /root/ -type f -ctime +1 //一天以外

技術分享


如果在find命令裏加多個參數條件的就是並且的意思,也就是說查找的文件要滿足這些指定的條件。

例如:find /etc/ -type f -mtime -1 -name *.conf

這條命令的意思是:查找etc目錄下的文件,此文件的最近更改時間或創建時間是一天以內的,並且此文件的後綴必須是conf

技術分享


想要這些參數條件起的作用不是並且而是或者的話,需要在參數條件加 -o

例如:find /root/ -type f -o -mtime -1 -o -name *.conf

這條命令的意思是:查找root目錄下的文件,或者查找最近更改時間或創建時間是一天以內的文件,或者此文件的後綴是conf的,只要滿足其中一個條件都會被查找出來。

技術分享



使用find命令查找硬鏈接文件:

命令如下:

find / -inum inode

例如:我要找a_123.txt的硬鏈接文件,首先得查看這個文件的inode號,然後將inode號放在命令的末尾:

技術分享


使用find命令查找root目錄下一小時以內更改過的文件:

find /root/ -type f -mmin -60

技術分享

那個表示分鐘的數字可以改變,例如想查看兩個小時以內的就使用-120,以此類推。


使用find命令查找文件的同時執行ls -l命令:

命令如下:

find /root/ -type f -mmin -60 -exec ls -l {} \;

技術分享

{}表示的是查找到的批量文件裏其中之一的意思。


使用find命令查找文件的同時執行mv命令:

命令如下:

find /root/ -type f -mmin -60 -exec mv {} {}.bak \;

技術分享

將查找出來的文件都重命令了


find命令中的-size參數條件可以指定查找文件的大小,例如:查找root目錄下大於10k的文件或者查找root目錄下小於10k的文件。

命令如下:

find /root/ -size +10

技術分享


find /root/ -size -10

技術分享


同樣的可以同時執行ls -lh命令查看檢索出來的文件的大小:

命令如下:

find /root/ -type f -size -10k -exec ls -lh {} \;

技術分享


使用M單位的話M要大寫:

find /root/ -type f -size -10M -exec ls -lh {} \;

技術分享


文件的後綴:

Linux中是嚴格區分大小寫的,所以a不等於A。在Linux中的文件後綴並不嚴謹,可以隨意自定義後綴名。而在Windows中,文件的後綴名是綁定著執行程序的。所以在Linux上文件的後綴並不代表這個文件的類型。

Linux中可以通過LANG變量更改當前環境的語言,例如更改為英文就是:LANG=en

技術分享


本文出自 “12831981” 博客,請務必保留此出處http://12841981.blog.51cto.com/12831981/1972042

Linux的find命令與文件名後綴