文件查找和壓縮

本節講解文件查找locate和find命令;還有各種壓縮工具

文件查找

  1. locate 文件名:(非實時查找如:數據庫查找)

查詢系統上預建的文件索引數據庫: /var/lib/mlocate/mlocate.db

依賴于事先構建的索引(索引的構建是在系統較為空閑時自動進行(周期性服務),管理員手動更新數據庫(updatedb))

索引構建過程需要遍歷整個根文件系統,極消耗資源

工作特點:

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

locate? KEYWORD

-i???? 不區分大小寫

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

-r???? 使用正則表達式

locate -r “^/etc/.*\.conf$”?????? //搜索以.conf結尾的文件

  1. find :(實時查找)通過遍歷指定路徑完成文件查找

工作特點:

查找速度慢、精確查找、實時查找、可能只搜索用戶具備讀取和執行權限的目錄

find? 語法:find?? [OPTION] …? [查找路徑]? [查找條件]?? [處理動作]

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

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

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

查找條件

?1.搜索層級別:? -maxdepth //最大搜索目錄深度??????? -mindepth //最小搜索目錄深度

? ? ? ? ?Find??? /data? -maxdepth?? 3????? -mindeoth?? 3??? -name??? f1?? //查找三層的文件

  1. 根據文件名和inode查找:

– name “文件名稱”:支持使用glob *, ?, [], [^]

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

-inum n 按inode號查找

-samefile name 相同inode號的文件

-links n 鏈接數為n的文件

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

3.根據屬主或屬組查找:

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

find? /home? -user?? wang??? -ls???? //查找wang的文件,并以長格式的形式顯示

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

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

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

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

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

  1. 根據文件類型:

-type TYPE:

f: 普通文件

d: 目錄文件

l: 符號鏈接文件

s:套接字文件

b: 塊設備文件

c: 字符設備文件

p: 管道文件

  1. 空文件或目錄:

?-empty????????????????????? 例如: find /app ?–type ?d ?–empty?? //搜索空目錄文件

  1. 德·摩根定律:(非 A) 或 (非 B) = 非(A 且 B) (非 A) 且 (非 B) = 非(A 或 B)

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

-o??? 或

-a??? 與

  1. 排除目錄: -prune

查找/etc/下,除/etc/sane.d和/etc/fonts兩個目錄的所有.conf后綴的文件

find /etc \(–path ‘/etc/sane.d’ –o –path ’/etc/fonts’ \) -a -prune –o -name “*.conf”

8.根據文件大小來查找

-size [+|-]#UNIT ???常用單位:k, M, G,c(byte)

#UNIT: (#-1, #]??? ?如:6k 表示(5k,6k]

-#UNIT:[0,#-1]? ?如:-6k 表示[0,5k]

+#UNIT:(#,∞) ????如:+6k 表示(6k,∞)

10

  1. 根據時間戳:

以“天”為單位;

-atime [+|-]#,

#: [#,#+1)

+#: [#+1,∞]

-#: [0,#)

-mtime

-ctime

11

以“分鐘”為單位: -amin ?????????-mmin ???????-cmin

  1. 根據權限查找:

-perm [/|-]MODE

MODE: 精確權限匹配

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

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

0 表示不關注

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

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

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

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

處理動作

  1. –print 默認的處理動作,顯示至屏幕
  2. –ls 將搜索到的結果以長格式的形式顯示出來
  3. –delete 刪除搜索出來的文件(不提示,危險)
  4. –fls 實現將搜索結果以長格式的形式保存到文件中
  5. -ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,對于 每個文件執行命令之前,都會交互式要求用戶確認
  6. -exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,buxunwen直接執行
  7. {} //用于引用查找到的文件名稱自身

參數替換xargs

? xargs用于產生某個命令的參數,xargs 可以讀入 stdin 的數據,并且以空格符 或回車符將 stdin 的數據分隔成為arguments

注意:文件名或者是其他意義的名詞內含有空格符的情況

有些命令不能接受過多參數,命令執行可能會失敗,xargs可以解決

find和xargs格式:find | xargs COMMAND

echo?? f{1..4562000} |xargs -n100? touch //每次創建100個文件,實現批量創建文件

壓縮解壓縮工具

1.compress? /? uncompress(壓縮文件)

-d??? 解壓縮???? 相當于uncompress

-c??? 壓縮后結果顯示在屏幕,并保留源文件(可用重定向保存壓縮后內容)

-v??? 顯示詳情

  1. gzip /gunzip(壓縮文件)

-c??? 降壓縮或解壓縮的結果輸出到屏幕

-d??? 解壓縮?????? 相當于gunzip

-數字???? 指定壓縮比

zcat??? 不顯示解壓縮的前提下查看文本文件內容

3.bzip2?? /bunzip2(壓縮文件)

-k??? 保留源文件

-d??? 解壓縮?????? 相當于bunzip2

-數字???? 指定壓縮比

bzcat??? 不顯示解壓縮的前提下查看文本文件內容

4.xz /unxz? /xzcat(壓縮文件)

-k: keep, 保留原文件

-d:解壓縮

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

xzcat??? 不顯示解壓縮的前提下查看文本文件內容

5.zip? /? unzip

打包壓縮:zip –r /testdir/sysconfig ????/etc/sysconfig/

解包解壓縮 unzip sysconfig.zip

cat /var/log/messages | zip messages – (-代表前面打開的文件)

unzip -p message > messag

  1. tar?? 工具(- 可有可無)

-c????? 創建一個打包文件????????????????? -v????? 顯示過程

-p????? 保留原屬性?????????????????????????? -f?????? 指定文件名

-t?????? 預覽???????????????????????????????????? -C????? 指定到某目錄

(1)創建歸檔????? tar???? -cvpf

解壓縮?????????? tar???? -xvf?????? //可解開任意格式的壓縮文件

打包并壓縮????? tar?? -zcvpf?????? 文件名.tar.gz

(2) 追加文件至歸檔: 注:不支持對壓縮文件追加

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

(3) 查看歸檔文件中的文件列表 tar -t -f /PATH/TO/SOMEFILE.tar

(4) 展開歸檔

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

(5) 結合壓縮工具實現:歸檔并壓縮 -j: bzip2,????? -z: gzip,???? ?-J: xz

 

-T選項指定輸入文件,-X選項指定包含要排除的文件列表

(6)分割大的 tar 文件為多份小文件:

split –b ??Size ??–d ??tar-file-name? ?prefix-name(文件前綴)? 【-d? 指文件名加數字】

(7)?? 合并

cat ?mybackup-parts* ??> mybackup.tar.gz

cpio? 工具

cpio [選項] > 文件名或者設備名 ?????//用于備份

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

選項 :

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

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

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

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

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

-c 一種較新的存儲方式

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95748

(0)
qljqlj
上一篇 2018-04-12 14:04
下一篇 2018-04-12 14:35

相關推薦

  • MySQL之SQL語法介紹

    結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統;同時也是數據庫腳本文件的擴展名

    2018-06-07
  • Linux運維命令以及概念整理總結(1)

    1、文件系統分層結構: LBS Linux Standard Base
    2、ls命令、wc命令、時間戳、stat、通配符glob
    3、touch、cp、mv、rm、批量改名rename
    4、tree、mkdir、rmdir
    5、節點編號inode以及節點表、硬鏈接以及軟鏈接
    6、file命令、標準輸入,標準輸出

    2018-04-14
  • VIM編輯器用法大全

    文本編輯工具 語法:vim 參數 文件 文本編輯種類: 行編輯器:sed 全屏編輯器:nano,vi,vim – Vi Improved vim編輯器三大模式 編輯模式, 輸入模式: 末行模式: 內置的命令行接口; 模式轉換: 編輯模式 — > 輸入模式 : i : 在光標所在處輸入 a : 在光標所在處的后方輸入 o : 在光…

    2018-04-08
  • linux的inode的理解

    一、inode是什么? ? ? 理解inode,要從文件儲存說起。 ? ? 文件儲存在硬盤上,硬盤的最小存儲單位叫做”扇區”(Sector)。每個扇區儲存512字節(相當于0.5KB)。 ? ? 操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個”塊”(bl…

    Linux筆記 2018-04-01
  • TCP/IP協議

    無線網絡標準 IEEE 802.3 802.11a/b/g/n/ac 物理層,數據鏈路層data link layer   以太網是工作在物理層和數據鏈路層上 單工,雙工(物理層概念) 單工:單向傳輸數據??? (廣播,收音機) 雙工:雙向傳輸數據 全雙工:同時雙向?????? (手機) 半雙工:輪流雙向???? (對講機)   Hub集…

    Linux筆記 2018-06-24
欧美性久久久久