文件查找和壓縮

本節講解文件查找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
下一篇 2018-04-12

相關推薦

  • mysql練習題

    ?導入hellodb.sql生成數據庫?(1) 在students表中,查詢年齡大于25歲,且為男性的同學的名字和年齡MariaDB [hellodb]> select Name,Age from students where Age>25 and Gender=’M’;?(2) 以ClassID為分組依據,顯示每組的平均…

    Linux筆記 2018-06-09
  • linux 基礎命令學習(1)

    查看幫助 首先使用type 查看命令是外部還是內部命令 內部命令:help COMMAND? 或 man bash 外部命令:1、COMMAND –help 或 COMMAND -h ? ? ? ? ? ? ? ? ?2、使用手冊? man? COMMAND ?? ??? ??? ?? ? ?3、信息頁? ?info COMMAND ? ? ? …

    2018-03-30
  • 參加馬哥教育面授班

    很興奮,今天是開班的第6天了,課程的具體安排為,1、3、5上課,2、4、6實操課。課堂上目前是王老師授課,講的都是滿滿的干貨,很詳細。讓我再次確信參加這次培訓不會有錯。 面授班與在網絡學習,我覺得學習效果差別還是蠻大的。參加面授班能很好的約束我的行為,不會出現學著學著就打開游戲或看電影了,學習效率很高,哈哈。初次見到馬哥教育的各個老師發現都很平易近人,學習上…

    Linux筆記 2018-07-21
  • NFS文件系統介紹及相關實驗

    NFS:Network File System 網絡文件系統,基于內核的文件系統。Sun公司開發,通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件,基于RPC(Remote Procedure Call Protocol遠程過程調用)實現

    2018-06-28
  • lamp

    1.phpmyadmin 需要phpadmin包組和yum安裝lamp 創建phpadmin配置文件 安裝字符集包組 開啟mysql服務 創建測試賬號 編寫測試phpmysql 最后開啟httpd服務 測試成功 進行phpmyadmin 設置數據庫賬號 密碼 登陸成功 測試成功 2.搭建wordpress 在phpmyadmin實驗上進行 在phpmyadm…

    Linux筆記 2018-06-25
  • Docker容器三

    Docker file鏡像的制作的各種指令 ;dockerData Volume存儲卷

    2018-08-03
欧美性久久久久