文件查找與壓縮

文件查找與壓縮

 

Locate:非事實查找(數據庫查找)

    查詢系統上預建的文件索引數據庫

/var/lib/mlocate/mlocate.db

依賴于事先構建的索引;

索引的構建是在系統較為空閑時自動進行(周期性任務);

管理 員手動更新數據庫(updatedb);  

工作特點:

查找速度快;

模糊查找;

非實時查找 搜索的是文件的全路徑,不僅僅是文件名 可能只搜索用戶具備讀取和執行權限的目錄

Locate的選項

    –i執行區分大小寫的搜索

    -n X 只列舉前X個匹配項目

Locate foo

    搜索名稱或路徑中帶有“foo”的文件

Locate -r ‘\.foo$

    使用Regex來搜索以 “.foo”結尾的文件

 

Find:實時查找

實時查找工具,通過遍歷指定路徑完成文件查找; v

工作特點:

    查找速度略慢

    精確查找

    實時查找

    可能只搜索用戶具備讀取和執行權限的目錄

Find語法:

find [OPTION]… [查找路徑] [查找條件] [處理動作]

    查找路徑:指定具體目標路徑;默認為當前目錄

    查找條件:指定的查找標準,可以文件名、大小、類型、 權限等標準進行;默認為找出指定路徑下的所有文件

    處理動作:對符合條件的文件做操作,默認輸出至屏幕

查找條件

    根據文件名和inode查找:

        -name “文件名稱”:支持使用glob

             *,?,[],[^]

        -iname “文件名稱”:不區分字母大小寫

        -iname n 按inode號查找

        -samefile name  相同inode號的文件

        -links n   鏈接數為n的文件

        -regex "PATTERN":以PATTERN匹配整個文件路徑字 符串,而不僅僅是文件名稱

  根據屬主、屬組查找:

        -user USERNAME:查找屬主為指定用戶(UID)的文件

        -group GRPNAME: 查找屬組為指定組(GID)的文件

        -uid UserID:查找屬主為指定的UID號的文件

        -gid GroupID:查找屬組為指定的GID號的文件

        -nouser:查找沒有屬主的文件 -nogroup:查找沒有屬組的文件

  根據文件類型查找:

        -type TYPE:

              f: 普通文件

              d: 目錄文件

              l: 符號鏈接文件

              s:套接字文件

              b: 塊設備文件

              c: 字符設備文件

              p: 管道文件

    組合條件:

          與:-a 或:-o

          非:-not, !

     德·摩根定律:

           非(P 且 Q) = (非 P) 或 (非 Q)

           非(P 或 Q) = (非 P) 且 (非 Q)

     !A -a !B = !(A -o B)

     !A -o !B = !(A -a B)

 

Find實例

    ? find -user joe -not -group joe

        ? find -user joe -o -user jane

        ? find -not \( -user joe -o -user jane \)

        ? find / -user joe -o -uid 500

找出/tmp目錄下,屬主不是root,且文件名不是fstab的文件

   find /tmp \( -not -user root -a -not -name 'fstab' \) ls

   find /tmp -not \( -user root -o -name 'fstab' \) –ls v

排除目錄

   find /etc -path ‘/etc/sane.d’ -a -prune -o -name *.conf -print

據文件大小來查找:

    -size [+|-]#UNIT

          常用單位:k, M, G

          #UNIT: (#-1, #],如:6k

          -#UNIT:[0,#-1], 如:-6k

          +#UNIT:(#,∞),   如:+6k

 根據時間戳:

     以“天”為單位;

          -atime [+|-]#,

          #: [#,#+1)

          +#: [#+1,∞]

          -#: [0,#)

          -mtime

          -ctime

     以“分鐘”為單位:

           -amin

           -mmin

           -cmin

根據權限查找:

     -perm [/|-]MODE

     MODE: 精確權限匹配

         /MODE:任何一類(u,g,o)對象的權限中只要能一位匹配 即可,或關系,+ 從centos7開始淘汰

          -MODE:每一類對象都必須同時擁有指定權限,與關系

           0 表示不關注

         ? find -perm 755 會匹配權限模式恰好是755的文件

         ? 只要當任意人有寫權限時,find -perm +222就會匹配

         ? 只有當每個人都有寫權限時,find -perm -222才會匹配

         ? 只有當其它人(other)有寫權限時,find -perm -002才 會匹配

處理動作

v  -print:默認的處理動作,顯示至屏幕; v

-ls:類似于對查找到的文件執行“ls -l”命令 v

-delete:刪除查找到的文件; v

-fls file:查找到的所有文件的長格式信息保存至指定文件中 v

-ok COMMAND {} \; 對查找到的每個文件執行由 COMMAND指定的命令;

 對于每個文件執行命令之前,都會交互式要求用戶確認

v-exec COMMAND {} \; 對查找到的每個文件執行由 COMMAND指定的命令 v   {}: 用于引用查找到的文件名稱自身

vfind傳遞查找到的文件至后面指定的命令時,查找到所有符合 條件的文件一次性傳遞給后面的命令 v

  有些命令不能接受過多參數,此時命令執行可能會失敗,下 面方式可規避此問題

   find | xargs COMMAND

壓縮工具

    compress [-dfvcVr] [-b maxbits] [file …]

   -d: 解壓縮,相當于

   -c: 結果輸出至標準輸出,不刪除原文件

   -v: 顯示詳情 v

     uncompress 解壓縮

   vzcat file.Z >file

     gzip [OPTION]… FILE …

          -d: 解壓縮,相當于gunzip

          -c: 將壓縮或解壓縮的結果輸出至標準輸出

          -#:1-9,指定壓縮比,值越大壓縮比越大

   vzcat:不顯式解壓縮的前提下查看文本文件內容 v

     實例:

          gzip -c messages  >messages.gz

          gzip -c -d messages.gz > messages

          zcat messages.gz > messages

      bzip2 [OPTION]… FILE …

           -k: keep, 保留原文件

           -d:解壓縮

           -#:1-9,壓縮比,默認為6

vbzcat:不顯式解壓縮的前提下查看文本文件內容;

  xz [OPTION]… FILE …

        -k: keep, 保留原文件;

        -d:解壓縮 -#:1-9,壓縮比,默認為6; v

  xzcat: 不顯式解壓縮的前提下查看文本文件內容;

v打包壓縮

       zip –r sysconfig sysconfig/ v

  解包解壓縮

       unzip sysconfig.zip

       cat /var/log/messages | zip message

       unzip -p message > message

 

Tar

  vtar [OPTION]…

(1) 創建歸檔

        tar -c -f /PATH/TO/SOMEFILE.tar FILE…

        tar cf /PATH/TO/SOMEFILE.tar FILE…

(2) 查看歸檔文件中的文件列表

    tar -t -f /PATH/TO/SOMEFILE.tar

(3) 展開歸檔

        tar -x -f /PATH/TO/SOMEFILE.tar tar -x -f /PATH/TO/SOMEFILE.

        tar -C /PATH/ v

結合壓縮工具實現:歸檔并壓縮

-j: bzip2, -z: gzip, -J: xz

 

cpio

v 復制 從或到文件 v

   cpio命令是通過重定向的方式將文件進行打包備份,還原恢復 的工具,它可以解壓以“.cpio”或者“.tar”結尾的文件。 v

   cpio [選項] > 文件名或者設備名 v

   cpio [選項] < 文件名或者設備名 v

 選項

      -o 將文件拷貝打包成文件或者將文件輸出到設備上

      -i 解包,將打包文件解壓或將設備上的備份還原到系統

      -t 預覽,查看文件內容或者輸出到設備上的文件內容

      -v 顯示打包過程中的文件名稱。

      -d 解包生成目錄,在cpio還原時,自動的建立目錄

      -c 一種較新的存儲方式

實例

v 將etc目錄備份:

       find ./etc -print |cpio -ov >etc.cpio v

   內容預覽

       cpio –tv < etc.cpio v

   要解包文件

        cpio –iv  <etc.cpio

        cpio –idv < etc.cpio

 


1、查找/var目錄下屬主為root,且屬組為mail的所有文件

文件查找與壓縮 

2、查找/var目錄下不屬于rootlp、gdm的所有文件

文件查找與壓縮 

3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件

文件查找與壓縮 

5、查找/etc目錄下大于1M且類型為普通文件的所有文件

文件查找與壓縮 

6、查找/etc目錄下所有用戶都沒有寫權限的文件

文件查找與壓縮 

7、查找/etc目錄下至少有一類用戶沒有執行權限的文件

文件查找與壓縮 

8、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件

文件查找與壓縮 

原創文章,作者:xiaoqiang512,如若轉載,請注明出處:http://www.www58058.com/37051

(0)
xiaoqiang512xiaoqiang512
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相關推薦

  • linux grep manual

    名稱    grep – 打印匹配的行語法:     grep [option] pattern [file…]     grep [option] [-e pattern]…

    Linux干貨 2015-08-31
  • 系統基礎之AWK詳解

    GUN awk 文本處理三工具:grup,sed,awk     grep,egrep,fgrep:文本過濾工具     sed:行編輯器         模式空間,保持空間   …

    Linux干貨 2016-09-21
  • 第一次發微博

    第一次申請微博,第一次發微博,覺得很難

    Linux干貨 2017-01-06
  • 網絡班N_27第三周作業

    1、   列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who |cut-d” ” -f1 | sort -u 2、   取出左后登錄到當前系統的用戶的相關信息。 [root@localhost ~]# id `l…

    2017-08-11
  • HAProxy基于KeepAlived實現Web高可用及動靜分離

    前言 軟件負載均衡一般通過兩種方式來實現:基于操作系統的軟負載實現和基于第三方應用的軟負載實現。LVS是基于Linux操作系統實現的一種軟負載,而HAProxy則是基于第三方應用實現的軟負載。HAProxy相比LVS的使用要簡單很多,但跟LVS一樣,HAProxy自己并不能實現高可用,一旦HAProxy節點故障,將會影響整個站點。本文帶來的是HAProxy基…

    Linux干貨 2015-06-25
  • 誤刪除centos6.8內核修復全過程

    關于誤刪除系統內核或內核損壞修復教程,本教程主要詳細描述系統內核或內核損壞修復過程中步驟詳解 一.操作環境 硬件:華碩筆記本 軟件:VMware Workstation Pro 12版本  Centos 6.8.iso鏡像 二,修復步驟 第一步,我們先要掛載centos6.8的鏡像,然后光盤啟動 進入系統救援模式 進入當前系統的根目錄 我們需要手動…

    Linux干貨 2016-09-05

評論列表(1條)

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

    文章對find的常見選項和用法有了一個完整的總結,對linux而言最重要的是多在操作,只有在操作中你才知道自己哪里不會,哪里需要改進,理論結合實踐,才能真正的學好linux,多加練習。

欧美性久久久久