日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux之文件查找

發布時間:2025/3/20 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux之文件查找 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.find查找概述

為什么要有文件查找,因為很多時候我們可能會忘了某個文件所在的位置,此時就需要通過find來查找。find命令可以根據不同的條件來進行查找文件,例如:文件名稱、文件大小、文件修改時間、屬主屬組、權限、等等方式。同時find命令是Linux下必須掌握的。

find 命令的基本語法如下

命令路徑選項表達式動作
find[path...][options][expression][action]
查找地區妹紙18-25歲約?

2.find查找示例

以下列出所有find常用的選項

1.find名稱查找

#1.創建文件 touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1} ? #2.查找/etc目錄下包含ifcfg-eth0名稱的文件 [root@yfy ~]# find /etc -name "ifcfg-eth1" ? #3.-i 忽略大小寫 [root@yfy ~]# find /etc -iname "ifcfg-eth1" #查找/etc目錄下包含ifcfg-eth名稱所有文件 [root@yfy ~]# find /etc/ -name "ifcfg-eth*" [root@yfy ~]# find /etc -iname "ifcfg-eth*"

2.find大小查找

#1.查找大于5M的文件 [root@yfy ~]# find /etc -size +5M ? #2.查找等于5M的文件 [root@yfy ~]# find /etc -size 5M ? #3.查找小于5M的文件 [root@yfy ~]# find /etc -size -5M

3.find時間查找

#1.創建測試文件(后期shell會講) [root@xuliangwei ~]# for i in {01..31};do date -s 201910$i && touch file-$i;done#2.查找7天以前的文件(不會打印當天的文件) [root@xuliangwei ~]# find ./ -iname "file-*" -mtime +7#3.查找最近7天的文件,不建議使用(會打印當天的文件) [root@xuliangwei ~]# find ./ -iname "file-*" -mtime -7#4.查找第7天文件(不會打印當天的文件) [root@xuliangwei ~]# find ./ -iname "file-*" -mtime 7#5.本地文件保留最近7天的備份文件, 備份服務器保留3個月的備份文件(實際使用方案) find /backup/ -iname "*.bak" -mtime +7 -delete find /backup/ -iname "*.bak" -mtime +90 -delete

4.find類型查找

# f 文件 [root@yfy ~]# find /dev -type f # d 目錄 [root@yfy ~]# find /dev -type d # l 鏈接 [root@yfy ~]# find /dev -type l # b 塊設備 [root@yfy ~]# find /dev -type b # c 字符設備 [root@yfy ~]# find /dev -type c # s 套接字 [root@yfy ~]# find /dev -type s # p 管道文件 [root@yfy ~]# find /dev -type p

5.find用戶查找

#查找屬主是jack [root@yfy ~]# find /home -user jack #查找屬組是admin [root@yfy ~]# find /home -group admin #查找屬主是jack, 屬組是admin [root@yfy ~]# find /home -user jack -group admin #查找屬主是jack, 并且屬組是admin [root@yfy ~]# find /home -user jack -a -group admin #查找屬主是jack, 或者屬組是admin [root@yfy ~]# find /home -user jack -o -group admin #查找沒有屬主 [root@yfy ~]# find /home -nouser #查找沒有屬組 [root@yfy ~]# find /home -nogroup #查找沒有屬主或屬組 [root@yfy ~]# find /home -nouser -o -nogroup

6.find權限查找

#精切匹配644權限 [root@yfy ~]# find . -perm 644 -ls #包含444權限即可 [root@yfy ~]# find . -perm -444 -ls #查找全局可寫(每位權限必須包含w) [root@yfy ~]# find . -perm -222 -ls #包含set uid [root@yfy ~]# find /usr/sbin -perm -4000 -ls #包含set gid [root@yfy ~]# find /usr/sbin -perm -2000 -ls #包含sticky [root@yfy ~]# find /usr/sbin -perm -1000 -ls

find動作處理,比如查找到一個文件后,需要對文件進行如何處理, find的默認動作是 -print

動作含義
-print打印查找到的內容(默認)
-ls以長格式顯示的方式打印查找到的內容
-delete刪除查找到的文件(僅能刪除空目錄)
-ok后面跟自定義 shell 命令(會提示是否操作)
-exec后面跟自定義 shell 命令(標準寫法 -exec \;)

7.find查找后的動作命令示例

#1.使用-print打印查找到的文件 [root@yfy ~]# find /etc -name "ifcfg*" [root@yfy ~]# find /etc -name "ifcfg*" -print ? #2.使用-ls打印查找到的文件,以長格式顯示 [root@yfy ~]# find /etc -name "ifcfg*" -ls ? #3.使用-delete刪除文件,但僅能刪除空目錄 [root@yfy ~]# find /etc -name "ifcfg*" -delete ? #4.使用-ok實現文件拷貝,但會提示是否拷貝 [root@yfy ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \; ? #5.使用-exec實現文件拷貝和文件刪除。 [root@yfy ~]# find /etc -name "ifcfg*" -exec cp {} /tmp \; [root@yfy ~]# find /etc -name "ifcfg*" -exec rm -f {} \;

8.使用find命令結合xargs

#xargs將前者命令查找到的文件作為一個整體傳遞后者命令的輸入 [root@yfy ~]# touch file.txt [root@yfy ~]# find . -name "file.txt" |xargs rm -f [root@yfy ~]# find . -name "file.txt" |xargs -I {} cp -rvf {} /var/tmp

9.find邏輯運算符

符號作用
-a
-o
-not | !
#1.查找當前目錄下,屬主不是hdfs的所有文件 [root@yfy ~]# find . -not -user hdfs [root@yfy ~]# find . ! -user hdfs#2.查找當前目錄下,屬主屬于hdfs,且大小大于300字節的文件 [root@yfy ~]# find . -type f -a -user hdfs -a -size +300c#3.查找當前目錄下的屬主為hdfs或者以xml結尾的普通文件 [root@yfy ~]# find . -type f -a \( -user hdfs -o -name '*.xml' \)

10.find相關練習題

1.查找/tmp目錄下,屬主不是root,且文件名不以f開頭的文件 2.查找/var目錄下屬主為root,且屬組為mail的所有文件 3.查找/var目錄下不屬于root、lp、gdm的所有文件 4.查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件 5.查找/etc目錄下大于1M且類型為普通文件的所有文件 6.將/etc/中的所有目錄(僅目錄)復制到/tmp下,目錄結構不變 7.將/etc目錄復制到/var/tmp/,/var/tmp/etc的所有目錄權限777/var/tmp/etc目錄中所有文件權限666 8.保留/var/log/下最近7天的日志文件,其他全部刪除 9.創建touch file{1..10}10個文件, 保留file9,其他一次全部刪除 10.解釋如下每條命令含義 mkdir /root/dir1 touch /root/dir1/file{1..10} find /root/dir1 -type f -name "file5" find /root/dir1 ! -name "file5" find /root/dir1 -name "file5" -o -name "file9" find /root/dir1 -name "file5" -o -name "file9" -ls find /root/dir1 \( -name "file5" -o -name "file9" \) -ls find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \; find /root/dir1 ! \( -name "file4" -o -name "file8" \) -exec rm -vf {} \;

總結

以上是生活随笔為你收集整理的Linux之文件查找的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。