一、命令檔案查詢
一、查詢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全年的...