本節索引
一、文件查找
二、壓縮與解壓縮
如同我們平時在操作 Windows系統時,文件查找與解壓縮文件是經常要使用到的操作,Linux系統中也要經常用到相同的操作,今天我們就來介紹Linux系統中的一些文件查找與解壓縮時使用到的工具。
一、文件查找
Linux系統中自帶兩個文件查找命令locate和find,那兩個命令如何進行使用選擇呢?各自又有什么優點和缺點呢,我們來詳細看一下:
(1)locate命令
優點:搜索速度快,節省系統性能(生產環境適合使用locate)
缺點:不能即時更新(文件索引數據庫在每次開機后更新),要想搜索最新文件需手動輸入命令updatedb更新文件索引數據庫,模糊搜索;
Locate命令適合搜索不經常變化的文件,如系統文件
查詢系統上預建的文件索引數據庫:
/var/lib/mlocate/mlocate.db
locate
-i????? 忽略大小寫
-b???? 只搜索基名符合條件的文件
-n???? 只列出前幾個
-r????? 支持擴展正則表達式
(2)find命令
優點:精確查找;實時查找;搜索條件靈活
缺點:查找速度慢;占用系統性能
find [OPTION]…[查找路徑] [查找條件] [處理動作]
指定搜索層級:
不指定情況下默認當前目錄下搜索
-maxdepth level????? 最大搜索深度,默認為1層
-mindepth level 最小搜索深度
根據文件名和inode查找:
-name “filename” 支持使用通配符glob;注意文件名一定加””
-iname “filename” 不區分字母大小寫
-inum n???????????? 按節點號inode查找文件
-samefile name?????? 查找相同inode的文件,即硬鏈接
-links n???? 查找鏈接數為n的文件
-regex “PATTERN” 使用正則表達式搜索
根據屬主、屬組查找:
-user USERNAME:查找屬主為指定用戶(UID)的文件
-group GRPNAME:查找屬組為指定組(GID)的文件
-uid UID:?????? 查找屬主為指定UID號的文件
-gid GID:?????? 查找屬組為指定GID號的文件
-nouser:??????? 查找沒有屬主的文件
-nogroup:???? 查找沒有屬組的文件
-nouser -o -nogroup?????? 查找沒有屬主或沒有屬組的文件
根據文件類型查找:
-type TYPE:
f:?? 普通文件
d:? 目錄文件
l:?? 符號鏈接文件
s:?? 套接字文件
b:? 塊設備文件
c:? 字符設備文件
p:? 管道文件
搜索空文件或目錄:
-empty???????????? 查找空文件或空目錄
例:find/app -type d -empty
組合條件:
-a???? 與
-o???? 或
-not,!?????? 非
德摩根定律:
????????????????? (非A)或(非B)=非(A且B)
????????????????? (非A)且(非B)=非(A或B)
注意:使用()表示組合條件時,括號內兩邊一定要加空格,且括號一定要加轉義符”\”。
根據文件大小來查找:
-size[+|-]#UNIT
常用單位:k,M,G,c(byte)
1024c? (1024-1,1024]
+1024c??? (1024,+)
-1024c???? [0,1024-1]
根據時間戳查找:
以“天”為單位:
-atime[+|-]#
3:[3,4)
+3:[4,+]
-4:[0,4)
-mtime
-ctime
以“分鐘”為單位:
-atime
-mtime
-ctime
根據權限查找:
-perm[/|+|-]MODE
MODE:精確權限匹配(數字法)
/|+MODE:任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系;
CentOS6使用“+”,CentOS7使用“/”
-MODE:沒類對象權限都有對應權限時,才會匹配,且關系;
處理動作:
-print??????????????? 默認的處理動作,顯示到屏幕
-ls???????????? 類似于對查找的文件執行”ls -l”命令
-delete???????????? 刪除查找到的文件,不進行提示
-fls file???? 查找到的所有文件的長格式信息保存至指定文件中
-ok COMMAND{}\; {}代表前面搜索到的結果,-ok后必須跟\;結尾,語法要求;對
查找到的每個文件執行COMMAND命令,每個文件執行命令時,會要求
用戶確認
例:find -name “f*” -ok rm {} \;
將f開頭的文件刪除,每個文件刪除時會要求確認。
-exec COMMAND{}\; 對每個搜索到的文件執行COMMAND命令,不要求用戶確認
例:find -name “f*” -exec mv {} /data/ \;
將f開頭的文件移動到data目錄下,不要求用戶確認
二、壓縮和解壓縮
Linux系統中支持多種文件解壓縮工具,不同壓縮工具壓縮比有所不同,壓縮后的后綴名也不一樣。要注意的是:前面我們說過在linux系統中,文件是不通過后綴判斷的,但在解壓縮中是個例外,不同的解壓縮工具對后綴是有要求的。
Linux常見解壓縮工具:
file-roller???????? 圖形化解壓縮工具(類似于windows系統winrar)
compress/uncompress:?????? .Z后綴
gzip/gunzip:????????? .gz后綴(主流)
bzip2/bunzip2:????????????? .bz2后綴(主流)
xz/unxz:???????????????? .xz后綴(主流,新興)
zip
tar
cpio
(1)compress/uncompress
-d???? 解壓縮,相當于uncompress,壓縮文件刪除
-c???? 壓縮結果輸出至標準輸出,不刪除原文件
例:compress -c b > b.Z 解壓文件b并且不刪除
-v???? 顯示詳情
uncompress??? 解壓縮,同compress -d,壓縮文件刪除
zcat file.Z > file? 解壓縮,原壓縮文件不刪除
(2)gzip/gunzip
-d???? 解壓縮,相當于gunzip
-c???? 將壓縮結果輸出至標準輸出,不刪除原文件
-v???? 顯示詳情
zcat file.gz > file? 解壓縮,原壓縮文件不刪除
(3)bzip2/bunzip
-k???? 保留原文件
-d???? 解壓縮
bunzip2??????????? 解壓縮
bzcat???????????????? 不解壓縮前提查看文本內容,與gzip的zcat用法類似
(4)xz/unxz
-k???? 保留原文件
-d???? 解壓縮
unxz???????? 解壓縮,功能同xz -d
xzcat???????????????? 功能同zcat,bzcat
壓縮比:xz > bzip2 > gzip > compress
(5)zip/unzip
打包壓縮
zip -r /tsetdir/sysconfig /etc/sysconfig/
解包解壓縮
unzip sysconfig.zip
cat /var/log/messages|zip messages –
unzip -p message > message?? ?? 解壓縮重定向
(6)tar工具:(Tape ARchive,磁帶歸檔的縮寫)打包工具,并不壓縮
tar[OPTION]…
-c???? 創建一個打包文件
-C???? 指定解壓的目錄
-p???? 保留屬性
-v???? 查看過程
-f????? 對哪個進行文件歸檔或打包
-t????? 查看列表
1.創建文檔(打包文件或目錄)
tar -cpvf /PATH/TO/SOMEFILE.tar FILE…
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:bizp2
-z:gzip
-J:xz
6.-T選項指定輸入文件,-X選項指定包含要排除的文件列表
例:tar zcvf myback.tgz -T /root/includefilelist -X /root/excludefilelist
7.分割打的tar文件為多份小文件:
split
-b Size -d tar-file-name prefix-name
-b 1M –d mybackup.tgz mybackup-parts
-b 1M mybackup.tgz mybackup-parts
8.合并tar分割的多個小文件:
cat mybackup-parts* > mybackup.tar.gz
(7)cpio
功能:復制文件從或到歸檔
cpio命令是通過重定向的方式將文件進行打包備份,還原恢復的工具,他可以解壓以
“cpio”或者”tar”結尾的文件
cpio[option] > 文件名或者設備名
cpio[option] < 文件名或者設備名
選項
-o???? 將文件拷貝打包成文件或者將文件輸出到設備上
-i????? 解包,將打包文件解壓或將設備上的備份還原到系統
-t????? 預覽,查看文件內容或者輸出到設備上的文件內容
-v???? 顯示打包過程中的文件名稱
-d???? 解包生產目錄,在cpio還原時,自動的建立目錄
-c???? 一種較新的存儲方式
示例:
將etc目錄備份
find ./etc -print |cpio -ov >etc.cpio
內容預覽
cpio -tv < etc.cpio
解包文件
cpio -idv <etc.cpio
關于linux系統的文件查找和解壓縮方法今天就先介紹到這里了。
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95750