文件查找與壓縮

文件查找與壓縮

 

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目錄下不屬于root、lp、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
下一篇 2016-08-18

相關推薦

  • VIM 詳用!

    1、復制/etc/rc.d/rc.sysinit文件至/TMP目錄,將/tmp/rc.sysinit文件的至少一個空白字符開頭的行首加 :%s/^[[:space:]]/#/ 2、復制/boot/grub/grub.conf 至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; :%s/[[:space:]]\+// 3、刪除/tmp/…

    Linux干貨 2017-08-20
  • 第四周博客分享

                    時間匆匆,轉眼來馬哥已經快一個月了,這一個月對我來說是收獲滿滿,每天都在學到新的東西。       &nbs…

    2017-08-06
  • LVM組件詳解&創建實驗流程

       前言:根據前面的學習我們知道,一個磁盤一旦分完區并且格式化后,其空間大小是沒有辦法進行調整了。因此推出了LVM(Logical Volume Manager)邏輯卷管理機制,LVM重點在于可以彈性的調整文件系統的容量!并非在于性能和數據保全方面,需要文件的讀寫性能或者數據的可靠性,需要用到RAID。而LVM可以整合多個物理…

    Linux干貨 2016-08-30
  • 交換分區管理

    創建交換分區 linux上的交換分區必須使用獨立的文件系統且文件系統的systemid必須為82mkswap [options] device [size] 創建交換分區文件系統 掛載交換分區     swapon 設備名稱 處理交換文件和分區     交換分區是系統RAM的補充  &nb…

    Linux干貨 2016-09-02
  • linux 使用者管理 (9月底)

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。     ~]#w | cut -d ' ' -f 1 |uniq -u 2、取出最后登錄到當前系統的用戶的相關信息。 ~]# last -1(數字1) 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 ~]#…

    Linux干貨 2016-10-02
  • Linux 學習基本

    環境配置主要分硬件和軟件兩種

    2018-03-26

評論列表(1條)

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

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

欧美性久久久久