find命令
一、find命令基本介紹
1、find作用
通過遍歷指定路徑實時查找符合條件的文件。
find工作特點
2、find工作特點
?查找速度較慢 ?精確查找 ?實時查找 ?用戶只能搜索有讀取和執行權限的目錄
3、語法
find [OPTIONS]... [查找路徑] [查找條件] [處理方式] 查找路徑:指定具體的目標路徑,默認是當前所處的目錄 查找條件:即查找標準,可以是文件名、文件大小、文件權限、文件屬主與屬組、inode、文件的時間戳、文件類型等等。如果不添加查找條件,則查找的是當前目錄的所有文件。 處理方式:對符合條件的文件進行如顯示、刪除、替換等等的操作,默認是輸出至標準輸出設備上。
二、查找條件分類
1、根據文件名和inode號查找
-name :后接文件名稱,支持使用global通配符如:*、?、[ ]、[^] ; -iname :后接文件名稱,不區分字母大小寫; -inum n :表示按inode號進行查找; -sameflie “filename” :表示相同inode號的文件,即硬鏈接文件; -link n:表示查找鏈接數為n的文件; -regex “PATTERN” :以PATTERN匹配整個文件路徑字符串,而非僅是文件名 [root@localhost ~]# find -regex ".*.sh$" ./.cache/evolution/addressbook/trash ./scriptdir/rc.sh ./sum100.sh
2、根據文件的屬主(UID)查找
-user USERNAME : 查找屬主為指定用戶的所有文件,如find /etc -user root -uid UID:查找指定UID的所有文件 -nouser :查找沒有屬主的所有文件
3、根據文件的屬組(GID)查找
-group :查找指定屬組的所有文件 -gid : 查找指定GID的所有文件 -nogroup :查找沒有屬組的所有文件
4、根據文件的類型查找
格式:-type TYPE TYPE包括: f : 普通文件 d:目錄文件 l:符合鏈接文件(非硬鏈接哦) s:套接字文件 b:塊設備文件 c:字符設備文件 p:管道文件
5、根據文件大小查找
-size [+|-] # :按指定的大小#來查找,常用單位有K、M、G 以搜索大小為6K的文件為例(如圖),其搜索的范圍是(5,6],注意區間 (#-1, #]表示#K [0,#-1]表示小于#K (#, ∞ )表示大于#K
6、根據時間戳
(1)以“天”為單位
-atime [+|-]# : -mtime [+|-]# : -ctime [+|-]# : 以搜索第6天的內容為例 #:[#,#-1) -#:(#,0] +#:(oo,#-1]
(2)以“分鐘”為單位
-amin [+|-]# : -mmin [+|-]# : -cmin [+|-]# :
7、以組合條件查找
與:-a 或:-o 非: -not /! 摩根定律: 非(P 且 Q) = (非 P) 或 (非 Q) >> !(A -o B)=!A -a !B 非(P 或 Q) = (非 P) 且 (非 Q) >> !(A -a B)=!A -o !B 示例: 找出/tmp 目錄下,屬主不是root ,且文件名不是fstab 的文件,用兩種方法。
8、根據權限查找
格式:-perm [/|-] MODE MODE:精確權限匹配,如find -perm 644 :表示匹配的文件權限只能是644。 /MODE:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足。9位權限之間存在或關系,注意在centos 7版本以前可以用+MODE。如find -perm /111:表示匹配的文件中ugo只有有一類用戶有執行權限即符合條件 -MODE:每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足。9位權限之間存在與關系。如find -perm /111:表示匹配的文件中ugo必須全部都要具有執行權限才符合條件。
三、處理方式(動作)
-print:將搜索的結果顯示至屏幕,默認。 -ls:顯示匹配的文件的詳細信息,類同與 “ls -l”。 -delete:刪除查找到的文件 -fls file:將查找的文件以長格式方式保存至指定的文件中。 -ok COMMAND {} \;對查找到的每一個文件都執行COMMAND命令,在執行COMMAND命令前都會要求用戶確認,y表示同意,回車表示略過。 -exec COMMAND {} \;對查找到的每一個文件都執行COMMAND命令,但不需用戶確認。
注意:
(1){ }:表示引用查找到的文件名稱自身; (2)find 傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令 (3)如果查找的文件數量過多,導致一些命令不能接受過多參數,而導致命令執行失敗,因此需要使用 find | xargs COMMAND 如圖。
四、作業
1、查找/var目錄下屬主為root,且屬組為mail的所有文件
2、查找/var目錄下不屬于root、lp、gdm的所有文件 3、查找/var目錄下最近一周內其內容修改過,且屬主不為root,也不是postfix的文件
4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件
5、查找/etc目錄下大于1M且類型為普通文件的所有文件
6、查找/etc目錄下所有用戶都沒有寫權限的文件
7、查找/etc目錄下至少有一類用戶沒有執行權限的文件
8、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件
壓縮及歸檔工具的使用
1、gzip/gunzip/zcat
(1)gzip語法
gzip [options]... file... -d:解壓縮,相當于gunzip -#:指定壓縮比(1-9),默認是6,數字越大壓縮比越大 -c:將壓縮結果輸出至標準輸出 保留原文件:gzip -c filename > filename.gz
(2)gunzip:解壓縮
(3)bzcat:查看gzip壓縮文件內的文件列表
2、bzip2/bunzip2/bzcat
(1)bizp2語法
bizp2 [options]... file... -d:解壓縮,相當于bunzip2 -#:指定壓縮比(1-9),默認是6,數字越大壓縮比越大 -k:保留原文件 -c:將壓縮結果輸出至標準輸出
(2)bunzip2:解壓縮
(3)bzcat:查看bizp2壓縮文件內的文件列表
3、xz/unxz/xzcat
(1)xz語法
xz [options]... file... -d:解壓縮,相當于unxz -#:指定壓縮比(1-9),默認是6,數字越大壓縮比越大 -k:保留原文件 -c:將壓縮結果輸出至標準輸出
(2)unxz:解壓縮
(3)xzcat:查看xz壓縮文件內的文件列表
4、歸檔(打包)工具,tar
(1)tar語法
tar [options]... file... -c:創建歸檔,須配合-f使用 -x:展開歸檔,須配合-f使用,跟-C可以將歸檔文件展開至指定位置 -t:查看歸檔文件中的文件列表,配合-f使用 -v:顯示歸檔(展開)過程 -f:指定歸檔文件
(2)歸檔并壓縮
-z:以gzip格式壓縮,如下: tar -zvcf /PATH/TO/SOMEFILE.tar.gz files 創建歸檔并壓縮文件 tar -zvxf /PATH/TO/SOMFILE.tar.gz 解壓縮并展開歸檔 -j:以bzip2格式壓縮 -J:以xz格式壓縮
5、示例
打包壓縮/etc/目錄,然后解壓展開到test目錄中 [root@localhost ~]# tar -zvcf etc.tar.gz etc/ etc/ etc/fstab etc/crypttab ...... [root@localhost ~]# tar -zvxf etc.tar.gz -C test/ etc/ etc/fstab etc/crypttab .....
原創文章,作者:pao,如若轉載,請注明出處:http://www.www58058.com/36387
文章結構清晰,層次分明,圖文并貌。對find的常用選項總結的也很詳細,find命令是筆試中的一個重要的考點,希望課后能多加練習,進行好總結和梳理。