Linux查詢壓縮

2021-09-05 01:28:53 字數 4822 閱讀 7843

一、命令檔案查詢

一、查詢ls 命令的位置

# which ls //從path環境變數

或者# whereis vim

二、任意檔案

locate

a. locate (查詢的資料庫: /var/lib/mlocate/mlocate.db)

計畫任務:每天自動更新資料庫 /etc/cron.daily/mlocate.cron

手動更新資料庫:updatedb

#touch abc.txt

#locate abc.txt

無,為什麼

#updatedb

#locate abc.txt

有,為什麼

#rm -rf abc.txt

#locate abc.txt

有,為什麼

#updatedb

#locate abc.txt

無,為什麼

如果你的機器沒有locate命令,你該怎麼辦呢?

yum provides locate

yum install -y mlocate

課後問題

在mnt目錄中的檔案無法用locate搜尋。

因為配置檔案中有排除查詢路徑。

/etc/updatedb.conf

第一行prune_bind_mounts="yes"的意思是:是否進行限制搜尋。

第二行是排除檢索的檔案系統型別,即列出的檔案系統型別不進行檢索。

第二行表示對哪些字尾的檔案排除檢索,也就是列在這裡面的字尾的檔案跳過不進行檢索。不同字尾之間用空格隔開。

第四行是排除檢索的路徑,即列出的路徑下的檔案和子資料夾均跳過不進行檢索。updatedb之後使用locate仍然找不到想要檔案

find

語法find [path...] [options] [expression] [action]

按檔名:-name

[root@tianyun ~]# find /etc -name "ifcfg-ens32"

[root@tianyun ~]# find /etc -iname "ifcfg-ens32" //-i忽略大小寫

[root@tianyun ~]# find /etc -iname "ifcfg-ens*"

按檔案大小:-size

[root@tianyun ~]# find /etc -size +5m //大於5m

[root@tianyun ~]# find /etc -size 5m //等於5m

[root@tianyun ~]# find /etc -size -5m //小於5m

[root@tianyun ~]# find /etc -size +5m -ls //-ls找到的處理動作

指定查詢的目錄深度:-maxdepth -mindepth

-maxdepth levels

-mindepth levels

[root@tianyun ~]# find / -maxdepth 3 -a -name "ifcfg-en*"

[root@tianyun ~]# find / -maxdepth 4 -a -name "ifcfg-en*"

按時間找(atime,mtime,ctime):

時間的概念

atime:(access time)顯示的是檔案中的資料最後被訪問的時間,比如系統的程序直接使用或通過一些命令和指令碼間接使用。(執行一些可執行檔案或指令碼)

mtime: (modify time)顯示的是檔案內容被修改的最後時間,比如用vi編輯時就會被改變。(也就是block的內容)

ctime: (change time)顯示的是檔案的許可權、擁有者、所屬的組、鏈結數發生改變時的時間。當然當內容改變時也會隨之改變(即inode內容發生改變和block內容發生改變時)

案例按時間找(atime,mtime,ctime):

[root@tianyun ~]# find /etc -mtime +5 //修改時間超過5天

[root@tianyun ~]# find /etc -mtime 5 //修改時間等於5天

[root@tianyun ~]# find /etc -mtime -5 //修改時間5天以內

按檔案屬主、屬組找:-user -group

[root@tianyun ~]# find /home -user jack //屬主是jack的檔案

[root@tianyun ~]# find /home -group hr //屬組是hr組的檔案

[root@tianyun ~]# find /home -nouser //缺失uid的檔案

按檔案型別(了解):-type

[root@tianyun ~]# find /dev -type f //f普通

[root@tianyun ~]# find /dev -type d //d目錄

[root@tianyun ~]# find /dev -type l //l鏈結

[root@tianyun ~]# find /dev -type b //b塊裝置

[root@tianyun ~]# find /dev -type c //c字元裝置

[root@tianyun ~]# find /dev -type s //s套接字

[root@tianyun ~]# find /dev -type p //p管道檔案

按檔案許可權:-perm

普通許可權

[root@tianyun ~]# find . -perm 644 -ls //精確許可權

[root@tianyun ~]# find . -perm -644 -ls //包含許可權即可

特別許可權

[root@tianyun ~]# find /usr/bin /usr/sbin -perm -4000 -ls //包含set uid

[root@tianyun ~]# find /usr/bin /usr/sbin -perm -2000 -ls //包含set gid

[root@tianyun ~]# find /usr/bin /usr/sbin -perm -1000 -ls //包含sticky

按正規表示式:(了解)

[root@tianyun ~]# find /etc/ -regex '.*ifcfg-ens3[0-9]'

找到後處理的動作 actions:

型別-print 列印,預設選項

-ls-delete

-exec 後面跟自定義的shell命令

-ok 後面跟自定義的shell命令

示例# find /etc -name "ifcfg*"

# find /etc -name "ifcfg*" -print

# find /etc -name "ifcfg*" -ls

# find /etc -name "775*" -delete /775.txt是自定義檔案

# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \; //不提示

# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \; //提示

# find /etc -name "775*" -exec rm -rf {} \;

簡介:tar命令是unix/linux系統中備份檔案的可靠方法,幾乎可以工作於任何環境中,它的使用許可權是所有使用者。

建議針對目錄

打包,壓縮

語法:tar 選項 壓縮包名稱 原始檔

===打包,壓縮===

# tar -cf etc.tar /etc

觀察三個包的體積。 # ll -h etc*

# tar -czf etc-gzip.tar.gz /etc/ //z是gzip -rw-r--r--. 1 root root 11m 10月 14 10:07 etc-gzip.tar.gz

# tar -cjf etc-bzip.tar.bz /etc/ //j是bzip -rw-r--r--. 1 root root 8.9m 10月 14 10:08 etc-bzip.tar.bz

# tar -cjf etc-xzip.tar.xz /etc/ //j是xzip -rw-r--r--. 1 root root 7.6m 10月 14 10:08 etc-xzip.tar.xz

壓縮速度和壓縮體積成反比。

file etc.tar.gz

解壓,解包

檢視# tar -tf etc.tar //t檢視f檔名

解壓縮# tar xf etc3.tar.xz //簡單粗暴

# tar -xvf etc2.tar.bz2 -c /tmp //-c重定向到//tmp目錄

解壓zip

==解壓zip

# unzip ***.zip

案例(海量小檔案)(了解)

案例4:host a /etc (海量小檔案) --------> host b /tmp

常規方法:

[root@localhost ~]# scp -r /etc 172.16.20.21:/tmp

擴充套件方法nc方法:

==host b 監聽埠(192.168.100.20:8888)==

[root@hostb ~]# systemctl stop firewalld.service

[root@hostb ~]# nc -l 8888 |tar -xzf - -c /tmp //啟動監聽程式8888

==host a 連線b 的埠==

[root@localhost ~]# tar -czf - /etc | nc 192.168.100.20 8888

tar: removing leading `/' from member names

linux檔案的查詢與壓縮

which whereis locate命令 前提 更新或者建立資料庫檔案 linux系統中,檔案型別不是由副檔名決定的 linux系統檔案型別 1 普通檔案 文字檔案 二進位制檔案 命令檔案 資料檔案 壓縮檔案 2 鏈結檔案 3 裝置檔案 b block 儲存裝置檔案 c charset 字元流裝...

雲計算Linux檔案查詢和壓縮乾貨

雲計算乾貨 linux系統配置及服務管理檔案查詢 檔案查詢 簡介 which 命令查詢 find 檔案查詢,針對檔名 locate 檔案查詢,依賴資料庫 一 命令檔案查詢 一 查詢ls 命令的位置 which ls 從path環境變數 或者 whereis vim 二 任意檔案 find 語法fin...

Linux 指令 日期查詢解壓縮(六)

date顯示當前時間 date y 顯示當前年份 date y m d 年 月 日 date y m d h m s 年 月 日 時 分 秒 date s 字串時間設定當前的時間,data s 2018 10 10 11 22 22 cal 以日曆的方式來顯示時間 cal 2020顯示2020全年的...