shell文件查找和壓縮命令
locate命令
1.locate filename
模糊匹配 只要文件名中包含關鍵字即可
非實時查找,速度比find快.
依靠索引數據庫 /var/lib/mlocate/mlocate.db
每天自動運行一次來更新數據庫.
updatedb 更新索引數據庫
2.適合搜索變化不太頻繁的文件.對系統的資源消耗不大.
3.實例
1. locate -r "^/etc/.*\.conf$"
find命令
實時查找工具,通過遍歷指定路徑來完成文件查找
查找出來的文件名稱必須是filename而不是包含filename
find / -name "*filename" 模糊匹配查找
實例:
1.find /etc -maxdepth 3 -mindepth 1 -name passwd
2.find -samefile file 查找file的硬鏈接文件
3.find /etc -regex ".*\.conf$" 正則表達式查找
4.find /etc " *.sh" 通配符查找 find /etc -name "*.sh" -ls
5. find /etc -iname sos.conf
6.find /data -size 1024c 查找文件大小範圍在(1023,1024] 1023是開區間表示不包含1023,1024是閉區間表示包含1024.總體表示為大於1023小於等於1024字節
7.find /data -size 1k 查找文件大小範圍在(1-1,1]這個範圍內,表示查找文件大小大於0k,小於等於1k的所有文件.
8.find /data -size -1024 查找的文件大小範圍在 [0,1024-1]的所有文件
9.find /data -size +1023 表示(1023,無窮大]的文件 不包含1023
10. find /mnt -size +10M -exec mv {} /data/ \; 找到mnt目錄下大於10M的文件並且移動到/data目錄下. {}表示搜索出來的文件名本身
xargs命令
默認是把前面命令的輸出信息用空格隔開,但是可以添加選項使用特定符號來代替空格符號
有時候用空格分隔輸出信息同樣實現不了相應的效果
echo f{1..10} | xargs -n2 echo -n 以空格回車符進行分割前面命令的輸出信息
壓縮和打包
1.壓縮只能對單個文件進行壓縮,如果需要同時對多個文件進行壓縮,就必須先打包然後再進行壓縮
2.tar 可以對目錄進行打包成一個文件,然後可以使用壓縮命令對這個打包文件進行壓縮
3.創建歸檔文件
tar -cpvf data.tar /data
4.查看歸檔文件tar包下面的所有文件
tar tvf data.tar
5.解壓縮tar包文件
tar xvf data.tar
6.同時進行打包和壓縮
tar -zcpvf data.tar.gz /data
tar xvf data.tar.gz
7.切割和合並壓縮文件
split -b 10M -d data.tar.xz a.tar 把data.tar.xz壓縮包切割成10M一個包
cat a.tar0* > newdata.tar.xz 把分割後的文件合並成一個壓縮包
shell文件查找和壓縮命令