find 和 壓縮工具

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

find 和 壓縮工具

6、根據時間戳

(1)以“天”為單位

-atime [+|-]# :
-mtime [+|-]# :
-ctime [+|-]# :
以搜索第6天的內容為例
#:[#,#-1)   -#:(#,0]    +#:(oo,#-1]

find 和 壓縮工具

(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 的文件,用兩種方法。

find 和 壓縮工具

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 如圖。

find 和 壓縮工具

四、作業

1、查找/var目錄下屬主為root,且屬組為mail的所有文件 find 和 壓縮工具 

2、查找/var目錄下不屬于root、lp、gdm的所有文件 find 和 壓縮工具3、查找/var目錄下最近一周內其內容修改過,且屬主不為root,也不是postfix的文件 find 和 壓縮工具4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件 find 和 壓縮工具5、查找/etc目錄下大于1M且類型為普通文件的所有文件 find 和 壓縮工具6、查找/etc目錄下所有用戶都沒有寫權限的文件 find 和 壓縮工具7、查找/etc目錄下至少有一類用戶沒有執行權限的文件 find 和 壓縮工具8、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件 find 和 壓縮工具

壓縮及歸檔工具的使用

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

(0)
paopao
上一篇 2016-08-16 13:35
下一篇 2016-08-16 13:59

相關推薦

  • 重定向及tr命令詳解及其在管道中的使用簡述

    一、標準輸入和輸出及其重定向         1.標準輸入指的是來自鍵盤的輸入,通常用0來表示;標注輸出是默認輸出到當前終端窗口,用1來表示;標準錯誤輸出同樣默認輸出到當前終端窗口,用2來表示。除標準輸出之外,我們還可以通過重定向來更改默認的輸入和輸出方式。   &nb…

    Linux干貨 2016-08-11
  • inotify介紹及rsync + inotify 實時同步備份

    1、前言 rsync (remote sync)是一款非常好的數據同步工具,能夠通過對比同步雙方的數據變動,實現增量同步,還可以通過LAN/WAN實現遠程多臺主機間文件的同步,還能結合crond任務計劃來執行自動備份,又可以結合ssh實現遠程數據備份的安全,種種特性使他看起來相當優秀。但如果需備份數據十分龐大時,它的不足之處就顯現出來了,比如每次執…

    Linux干貨 2016-06-15
  • 第三周小練習

    1. 列出當前系統上所有已經登陸的用戶的用戶名,注意,同一個用戶登陸多次,則顯示一次即可 who -u|grep -o "^[[:alnum:]]*\>"|uniq 2. 取出最后登陸到當前系統的用戶信息 who|tail -n1 3. 取出當前系統上被用戶當作其默認shell的最多的那個sh…

    Linux干貨 2016-11-21
  • 第七周-磁盤管理、RAID及Shell腳本練習

    一、創建一個10G分區,并格式為ext4文件系統; (1)、 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2)、掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@N1 ~]# mkfs.ext4 -b 2048 -m 2 -L MYDATA /…

    Linux干貨 2017-08-13
  • Linux系統的終端類型

    一、什么是Linux終端     終端–用戶用戶與主機交互,必然要用到的設備。     早期的大型機,想使用的用戶很多,但是主機只有一個,也不可能人手一臺,但是可以做到在主機上接一個分屏器,分屏器的每一個端子上可以接上一套鼠標鍵盤顯示器,就可以直接在主機上進行一些操作了,這就相當于每個人在獨立的操作一臺計算…

    Linux干貨 2016-10-18
  • N22第六周作業

    VIM編輯器介紹 什么是VIM? Vim是一個類似于Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是純粹的自由軟件。 Vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。 VIM的使用 &nbsp…

    Linux干貨 2016-10-24

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-19 14:11

    文章結構清晰,層次分明,圖文并貌。對find的常用選項總結的也很詳細,find命令是筆試中的一個重要的考點,希望課后能多加練習,進行好總結和梳理。

欧美性久久久久