1、文件的查找和搜索
可執行文件的搜索:which 、whereis
locate搜索文件
find搜索文件
1.1可執行文件的搜索
在Linux系統中,有成百上千個指令,不同的指令對應的指令文件,又放在不同的目錄里。如果快速地查找指令的絕對路徑是相當重要的。
which <指令>
顯示一個指令的完整路徑與別名。
whereis <指令>
搜索一個指令的完整路徑以及其幫助文件。
[root@natsha ~]# which ls
alias ls='ls --color=auto'
/bin/ls
[root@natsha ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
1.2locate搜索
在Linux系統中存在一個數據庫,在這個數據庫中保存了系統中所有文件的絕對路徑。用戶就可以使用下面的命令來查詢文件的完整路徑。
語法:locate [關鍵字]
這個指令會將文件名或目錄名中包含有此關鍵字的路徑全部顯示出來。
用戶剛創建的文件系統不會立即加入數據庫中,用戶可以通過updatedb指令來手動的更新這個 數據庫
1.3Find查詢的描述
find是一個相當重要的查詢文件絕對路徑的指令
語法:find <路徑> <選項> [表達式]
find查找文件的特點:
從指定路徑下遞歸向下搜索文件。
支持按照各種條件方式搜索。
支持對搜索得到的文件再進一步的使用指令操作(例如:刪除、統計大小、復制等)
Find條件查詢
find <路徑> <參數> [表達式]
重要選項:
-name 根據文件名尋找文件
-user 根據文件擁有者尋找文件
-group 根據文件所屬組尋找文件
-perm 根據文件權限尋找文件
-size 根據文件大小尋找文件[±Sizek]
-type 根據文件類型尋找文件,常見類型有:f(普通文件) 、c(字符設備文件)、b(塊設備文件) 、l(連接文件)、d(目錄)
-o 表達式或
-and 表達式與
-not 表達式非
對查找到的文件進一步操作
語法
find [路徑] [參數] [表達式] -exec 指令 {} \;
{ }代表find找到的文件
\ 轉意
;表示本行指令結束
例:find /etc –name “host*” –exec du –h {} \;
(1)使用-name選項
使用文件名模式來匹配文件,文件名要放在引號中。
在當前目錄和子目錄中查找所有的'*.log'文件:
find . -name "*.log" -print
(2)按文件屬主查找文件
find /etc -user natasha -print
(3)按更改時間或者訪問時間等查找文件。
在根下查找更改時間在5日以內的文件,可以用:
find / -mtime -5 -print
在/var/adm目錄下查找更改時間在3日以前的文件,可以用:
find /var/adm -mtime +3 -print
(4)使用type選項
在/etc 目錄下查找所有的目錄
find /etc -type d -print
在當前目錄下查找除目錄以外的所有類型的文件:
find . !-type d -print
(5)使用size選項
按文件大小來查找。
在當前目錄下查找文件長度大於1M的文件:
find . -size +1M -print
在/home/apache目錄下查找文件長度恰好為100字節的文件:
find /home/apache -size 100c -print
(6)使用depth選項
首先匹配所有的文件再在子目錄中查找。
從文件系統的根目錄開始,查找一個名為CON.FILE文件。
find / -name "CON.FILE " -depth -print
(7)找出所有所有者是natasha的文件,並把他們拷貝到/root/found目錄。
mkdir /root/found
find / -user natasha –exec cp –rf {} /root/found/ \;
2、文件的壓縮與解壓縮
文件的壓縮與解壓指令
gz與.bz系列指令
- gzip,gunzip
-- Linux標准壓縮工具
-- 對文本文件可以達到75%的壓縮率
-- 例:
gzip man.config
gunzip man.config.gz
- bzip2,bunzip2
--更新的Linux壓縮工具
--比gzip有着更高的壓縮率
例:
bzip2 httpd.conf.bk
bunzip2 httpd.conf.bk.bz2
不解壓顯示壓縮文件的內容:
對於用gzip壓縮的文件,有一系列以z開頭的指令,可以在不經解壓的情況下,就直接顯示文件的內容
zcat:直接顯示壓縮文件的內容
zless:直接逐行顯示壓縮文件的內容
對於用bzip壓縮的文件,也有一系列以bz開頭的文件。
bzcat:直接顯示壓縮文件的內容
bzless:直接逐行顯示壓縮文件的內容
3、tar指令
常用選項:
c 創建包
v 將過程輸出
x 解出包
t 顯示tar文件的內容
r 在tar文件尾部追加文件
z 用gzip壓縮或解壓文件
j 用bzip壓縮或解壓文件
f 指定備份文件名
-T 從指定的文件中讀取欲打包的文件路徑
-C 將文件備份到指定的目錄
tar支持在備份同時壓縮備份文件,或在解出備份同時解壓縮。
備份時壓縮
#tar jcvf test.tar.bz /home/test ( j:使用bzip2 )
#tar zcvf test.tar.gz /home/test ( z:使用gzip )
#tar -cvf /tmp/etc.tar /etc 僅打包,不壓縮
# tar -zcvf /tmp/etc.tar.gz /etc 打包后,以 gzip 壓縮
# tar -jcvf /tmp/etc.tar.bz2 /etc 打包后,以 bzip2 壓縮
在參數 f 之后的文件檔名是自己取的,習慣上都用 .tar 來作為辨識。
# 如果加 z 參數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的 tar file
# 如果加 j 參數,則以 .tar.bz2 來作為壓縮過的文件名
解壓備份文件
#tar jxvf test.tar.bz -C /tmp (j:使用bzip2 )
#tar zxvf test.tar.gz -C /tmp(z:使用gzip )
備份 /home, /etc ,但不要 /home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc