linux查看以i开头的文件,Linux文件查找Day.13
一.為什么要有文件查找
因為資料有很多,會忘記放在了什么位置,所以需要通過查找的方式進行搜索。(相當于windows查找文件? 計算機--->搜索框)
二.Linux中怎么查找文件查找
因為linux中沒有圖形工具,所以只能使用命令工具--find--來搜索
三.find命令使用語法
命令(find)? 路徑(/etc/)? 選項(要搜索什么)? 表達式(名稱,大小,文件類型,時間,組和用戶)? 動作(刪除,-exec? \;)
四.如何通過名稱,大小,文件類型,時間,組和用戶來搜索文件。
1.按名稱查找 (-iname 不區分大小寫)
[root@localhost ~]# find ./ -name "zy*"
(搜索當前目錄下以zy開頭的所有內容)
[root@localhost ~]# find ./ -name "*zy"
(搜索當前目錄下以zy開頭的所有內容)
[root@localhost ~]# find ./ -iname "zy*"
(搜索當前目錄下不區分大小寫zy開頭的內容)
2.按文件大小查找(以/etc/目錄為例)
[root@localhost ~]# find /etc/ -size +5M
(搜索/etc/目錄中大于5MB的內容)
[root@localhost ~]# find /etc/ -size -5M
(搜索/etc/目錄中小于5MB的內容)
[root@localhost ~]# find /etc/ -size 5M
(搜索/etc/目錄中等于5MB的內容)
PS:M單位也可以是k,G。
3.按文件類型查找 (-type)
文件類型:
f? ? 普通文件
d? ? 目錄
s? ? socket套接字文件
l? ? 鏈接文件
c? ? 字符設備
b? ? 塊設備
[root@localhost ~]# find ./ -type f -iname "zy*"
(搜索當前目錄中所有以“zy”開頭的文件并且不區分大小寫)
[root@localhost ~]# find /etc/ -type f -size +5M -name "*.bin"
(搜索/etc/目錄中以.bin結尾的并且文件大于5M的文件)
[root@localhost ~]# find /etc/ -type f -name "*.repo"
(搜索/etc/目錄中名稱以.repo結尾的文件)
[root@localhost ~]# find /dev/ -type b -name "sda*"
(搜索/dev/目錄中名稱以sda開頭的塊設備文件)
[root@localhost ~]# find /dev/ -type c -name "tty*"
(搜索/dev/目錄中以tty開頭的字符設備文件)
4.按時間查找(-mtime)
[root@localhost ~]# find ./ -type f -mtime 7
(查找出當前目錄下第7天的文件)*例:今天是10號,我要查找第七天的內容,就是10號之前的7天就是3號。*
[root@localhost ~]# find ./ -type f -mtime +7
(查找出當前目錄下7天之前的文件內容)
[root@localhost ~]# find ./ -type f -mtime -7
(查找出當前目錄下最近七天的文件內容)
實際使用方案
find /backup/ -iname? “*.bak”? -mtime? +7? -delete
(保留最近七天的文件其他全部刪除)
find /backup/ -iname? “*.bak”? -mtime? +90? -delete
(保留最近三個月的文件其他全部刪除)
find /backup/ -iname? “*.bak”? -mtime? +180? -delete
(保留半年的文件其他全部刪除)
5.按用戶和組查找(-user? -group -nouser -nogroup)
[root@localhost ~]# find /home/ -user zhangyao
(查找屬主是zhangyao的內容)
[root@localhost ~]# find /home/ -group zhangyao
(查找屬組是zhangyao的內容)
[root@localhost ~]# find /home/ -type d -user root -group zhangyao
(查找屬主是root,屬組是zhangyao的目錄)
[root@localhost ~]# find /home/ -nouser
(查找/home/目錄下沒有屬主的內容)
[root@localhost ~]# find /home/ -nogroup
(查找/home/目錄下沒有屬組的內容)
[root@localhost ~]# find /home/ -nouser? -nogroup
(查找/home/目錄下沒有屬主或沒有屬組的內容)
四.查找到內容后的處理動作
find的默認動作是-print(打印)
-print? ? ? 打印查找到的內容
-ls? ? ? ? ? 以長格式顯示的方式打印查找到的內容
-delete? 刪除查找到的文件 (刪除目錄,僅能刪除空目錄)
-ok? ? ? ? 后面跟自定義命令(會提示是否操作)
-exec? ? 后面跟自定義命令(標準寫法? -exec? \;)
例:
[root@localhost ~]# find ./ -type d -name "find_*" -exec rm -rf {} \;
(查找當前目錄下以find_開頭的目錄然后刪除)刪除少量文件時用這個
[root@localhost ~]# find ./ -type d -name "find_*"? | xargs rm -f
(查找當前目錄下以find_開頭的目錄然后刪除)刪除大量文件時候用這個
[root@localhost ~]# find /var/log/ -type f -name "*.log" -mtime +7 -exec rm -f {} \'
[root@localhost ~]# find /var/log/ -type f -name "*log" -mtime +7 | xargs rm -f
(兩種方法都是刪除七天之前日志文件)
五.查找只記得內容的文件
需要將find和grep組合起來用
例:
find? /etc/? -type? f? | xargs? grep “log_group” --color==auto(加顏色,可加可不加)
六.find邏輯運算符
例:
查找當前目錄下屬主不是root的所有文件,然后以長格式列出
find ./? -type? f? ! -user? root? -ls
查找當前目錄下屬主是zhangyao并且文件大小小于1k的所有文件
find ./ -type f -a -user? zhangyao -a -size 1k
查找當前目錄下屬主為root或者以xml結尾的文件
find ./ -type f -a -user root? -o -name "zy*"
轉義
find ./ -type f -a? \(“空格” -user root? -o -name "zy*" “空格” \)
等于
find ./ -type f -a? -user root + find ./ -type f -a? -name "zy*"
總結
以上是生活随笔為你收集整理的linux查看以i开头的文件,Linux文件查找Day.13的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 萤石开放平台的二次开发——摄像头取流至微
- 下一篇: 【opencv】鱼眼图像畸变校正——透视