文件查找命
在文件系統上查找符合條件的文件
-
非實時查找:基于索引查找 locate
-
實時查找:find
locate介紹
依賴于事先構建的索引:索引的構建是在系統較為空閑時自動進行(周期性任務):手動更新數據庫(updatedb)
索引構建過程需要遍歷整個根文件系統,極消耗資源,生產中盡量避免手動更新。
語法:
locate KEYWORD
-i:忽略大小寫搜索
-n N:只列舉前N個匹配項目。
find介紹
實時查找工具,通過遍歷指定路徑下的文件系統完成文件查找
語法: find [選項]…[查找路徑] [查找條件] [處理動作]
- 查找路徑:指定具體目標路徑,默認為當前目錄
- 查找條件:指定查找標準,可以文件名、大小、類型、權限等標準進行,默認為找出路徑下的所有文件
- 處理動作:對符合條件的文件做什么操作,默認輸出至屏幕
查找條件
根據文件名
-name “文件名稱”:支持使用glob
[root@localhost: /root]# find /etc -name "passwd"
/etc/pam.d/passwd
/etc/passwd
-iname “文件名稱”不區分字母大小寫
根據屬主、屬組
-user:查找屬主為指定用戶的文件
-group:查找屬組為指定組的文件
[xiangge@localhost: /home/xiangge]$ find /home -user xiangge -ls
523265 4 drwx------ 16 xiangge xiangge 4096 Apr 9 21:51 /home/xiangge
523388 4 -rw------- 1 xiangge xiangge 1112 Apr 9 22:00 /home/xiangge/.bash_history
-uid:查找屬組為指定UID號的文件
-gid:查找屬組為指定的GID號的文件
-nouser:查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
根據文件類型查找
-type:
- f:普通文件
- d:目錄文件
- l:符號鏈接文件
- s:套接字文件
- b:塊設備文件
- c:字符設備文件
- p:管道文件
[xiangge@localhost: /home/xiangge]$ find /tmp -type d -ls
1179649 4 drwxrwxrwt 15 root root 4096 Apr 9 22:50 /tmp
1577727 4 drwxrwxrwt 2 root root 4096 Apr 3 23:00 /tmp/.XIM-unix
1313311 4 drwxrwxrwt 2 root root 4096 Apr 3 23:25 /tmp/.X11-unix
1446044 4 drwxrwxrwt 2 root root 4096 Apr 3 23:00 /tmp/.Test-unix
1577726 4 drwxrwxrwt 2 root root 4096 Apr 3 23:25 /tmp/.ICE-unix
1185729 4 drwx------ 3 root root 4096 Apr 3 23:22 /tmp/systemd-private-fb3197586e804ebe969df0ca549914a1-rtkit-daemon.service-LcZqdW
組合條件
- 與:-a
- 或:-o
- 非:-not,!
事例:找出/tmp目錄下,屬主不是root,且文件名不是fstab的文件
第一方法:
find /tmp \( -not -user root -a -not -name 'fstab' \) -ls
第二種方法:
find /tmp -not \( -user root -0 -name 'fstab' \) -ls
根據文件大小查找
-size [+][-]#UNIT 常用單位:k,M,G
如:
- 5k: 5k<x<=6k
- -5k: x<5k
- +5: x>6k
[xiangge@localhost: /home/xiangge]$ find /var -size -5k -ls
根據時間戳查找
以天為單位:
- atime[+|-]#
- mtime
- ctime
如:
7:7<=x<8
-7:x<7
+7:x>=8
以分鐘為單位
- amin
- mimn
- cmim
處理動作:
- -print 打印到屏幕上
- -ls 打印到屏幕上 類似于ls -l
- -delete 刪除操作 只刪除文件,不能刪除非空目錄
- -fls file 查找到的文件信息保存到指定的文本中
- -ok 在執行后面的動作之前會提示你是否需要執行(交互式的)
- -exec CMD {} ; 執行后面的命令 {} 表示前面find出的結果 ; 固定用法
[xiangge@localhost: /home/xiangge]$ touch test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge -cmin -5
/home/xiangge/test.txt
[xiangge@localhost: /home/xiangge]$ find /home/xiangge -cmin -5 -exec mv {} {}.new \;
/home/xiangge/test.txt.new
原創文章,作者:祥健,如若轉載,請注明出處:http://www.www58058.com/73098
主要寫了linux下查找方件命令的詳細用法,內容寫的很不錯,排版也挺好的,贊!