文件查找:
- locate 文件名:(非實時查找如:數據庫查找)
查詢系統上預建的文件索引數據庫: /var/lib/mlocate/mlocate.db
依賴于事先構建的索引(索引的構建是在系統較為空閑時自動進行(周期性服務),管理員手動更新數據庫(updatedb))
索引構建過程需要遍歷整個根文件系統,極消耗資源
工作特點:
查找速度快、模糊查找、非實時查找、搜索的文件是全路徑,不僅僅是文件名、可能只搜索用戶具備讀取和執行權限的目錄
locate? KEYWORD
-i???? 不區分大小寫
-n??? 只列舉前n個匹配項目
-r???? 使用正則表達式
locate -r “^/etc/.*\.conf$”?????? //搜索以.conf結尾的文件
- find :(實時查找)通過遍歷指定路徑完成文件查找
工作特點:
查找速度慢、精確查找、實時查找、可能只搜索用戶具備讀取和執行權限的目錄
find? 語法:find?? [OPTION] …? [查找路徑]? [查找條件]?? [處理動作]
查找路徑:指定具體目標路徑;默認為當前目錄
查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行; 默認為找出指定路徑下的所有文件
處理動作:對符合條件的文件做操作,默認輸出至屏幕
查找條件:
?1.搜索層級別:? -maxdepth //最大搜索目錄深度??????? -mindepth //最小搜索目錄深度
? ? ? ? ?Find??? /data? -maxdepth?? 3????? -mindeoth?? 3??? -name??? f1?? //查找三層的文件
- 根據文件名和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:查找沒有屬組的文件
- 根據文件類型:
-type TYPE:
f: 普通文件
d: 目錄文件
l: 符號鏈接文件
s:套接字文件
b: 塊設備文件
c: 字符設備文件
p: 管道文件
- 空文件或目錄:
?-empty????????????????????? 例如: find /app ?–type ?d ?–empty?? //搜索空目錄文件
- 德·摩根定律:(非 A) 或 (非 B) = 非(A 且 B) (非 A) 且 (非 B) = 非(A 或 B)
!A -a !B = !(A -o B)????????????????? ?!A -o !B = !(A -a B)
-o??? 或
-a??? 與
- 排除目錄: -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,∞)
- 根據時間戳:
以“天”為單位;
-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才會匹配
處理動作:
- –print 默認的處理動作,顯示至屏幕
- –ls 將搜索到的結果以長格式的形式顯示出來
- –delete 刪除搜索出來的文件(不提示,危險)
- –fls 實現將搜索結果以長格式的形式保存到文件中
- -ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,對于 每個文件執行命令之前,都會交互式要求用戶確認
- -exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令,buxunwen直接執行
- {} //用于引用查找到的文件名稱自身
參數替換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??? 顯示詳情
- 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
- 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