Linux的find命令與文件名後綴
find命令:
find命令是用於搜索文件的,which是在環境變量中搜索,whereis是在準備好的庫裏搜索,locate是通過數據文件進行搜索。
在最小化安裝的系統中一般locate命令是需要自己安裝的,,安裝的命令是:yun install -y mlocate
安裝完後,這時locate命令還無法使用,因為locate依賴的數據文件還沒有生成,這個文件相當於這個命令的數據庫,你系統上文件的路徑都會存放在這裏,然後locate命令就是通過這個文件去搜索你指定的文件,這時需要使用updatedb命令生成一下此數據文件,這個命令也可以用於更新此文件,一般此文件會在淩晨四點自動更新:
從搜索結果可以看出,只要是帶有Test1的文件路徑都會被檢索出來,這屬於是一種模糊搜索,並不是精確搜,所以locate命令使用的比較少。
最常使用的是find命令,find最簡單的用法是指定一個範圍這個範圍可以是系統目錄或文件夾,然後指定具體的文件名稱,例如我要在
使用通配符*可以進行模糊搜索:
指定尋找的是目錄需要加-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命令與文件名後綴