linux系統上有以下兩個用於查找文件的命令:
locate:
優點:基於數據庫查找,速度快。
缺點:不是實時查找,查找的結果不夠準確
find:
優點:實時查找,能夠根據指定的單一條件或組合條件進行查找,查找結果精準
缺點:查找速度較locate要慢
在工作中,find命令比較常用
find 命令使用格式:
find [option] [directory] [condition] [action]
缺省模式時,會列出當前目錄及其子目錄的所有文件
condition:
-name:按文件名查找,區分大小寫
-iname:按文件名查找,不區分大小寫
-size [-/+]#:按文件的大小進行查找,常用單位有k(小寫)、M、G
[-/+]#的意義:
#:#-1< SIZE < #
-#:0 < SIZE < #-1
+#:# < SIZE
-type:按文件類型查找
f、d、l、s、b、c、p
-user:按文件屬主查找
-group:按文件屬組查找
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
-perm:按文件權限進行查找
perm:文件的三類用戶權限必須和給出的權限完全吻合
+perm:文件的九位權限只要有一位和給出的權限符合就行(隱含或的意思)
-perm:文件的三類用戶權限包含給出的權限(隱含與的意思)
-atime [-/+]#:文件的訪問時間,以天爲單位
-mtime [-/+]#:文件的修改時間,以天爲單位
-ctime [-/+]#:文件的改變時間,以天爲單位
-amin [-/+]#: 文件的訪問時間,以分鐘爲單位
-mmin [-/+]#: 文件的修改時間,以分鐘爲單位
-cmin [-/+]#: 文件的改變時間,以分鐘爲單位
[-/+]#的意義:
#:# < TIME < #+1
-#:# < TIME
+#:TIME < #+1
condition支持-a、-o、-not等邏輯運算符,使用邏輯運算符是符合德·摩根定律
-not \( A -o B \) = -not A -a -not B
-not \( A -a B \) = -not A -o -not B
action:
-exec:
示例:find . -type f -exec file '{}' \;
-ok:
示例:find . -type f -ok file '{}' \;
xargs:
示例:find . -type f | xargs file