好程式設計師雲計算學習路線系列分享雲計算之檔案查詢
grep: 檔案內容過濾
find: 檔案查詢,針對檔名
一、命令檔案
# which ls //從path環境變數 (echo $path)
# whereis vim
[root@localhost ~]# echo $path
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/htop/bin/:/root/bin
二、任意檔案
a. locate (查詢的資料庫: /var/lib/mlocate/mlocate.db)
計畫任務:每天自動更新資料庫 /etc/cron.daily/mlocate.cron
手動更新資料庫:updatedb
# locate ifcfg-eth0
# locate ifcfg-enp0s25
locate
updatedb後才能查詢到 非常麻煩 不建議使用
如果沒有 locate 使用yum直接安裝是不行的。 要查一下在哪個包裡 yum provides locate -→ mlocate → 直接yum mlocate即可
b. find
find [options] [path...] [expression] [action]
===expression=== 熟用*萬用字元
按檔名:
[root@tianyun ~]# find /etc -name "ifcfg-eth0" name 名字 後面-print 已省略
[root@tianyun ~]# find /etc -iname "ifcfg-eth0" //-i忽略大小寫
[root@tianyun ~]# find /etc -iname "ifcfg-eth*"
按檔案大小:
[root@tianyun ~]# find /etc -size +5m //大於5m
[root@tianyun ~]# find /etc -size 5m
[root@tianyun ~]# find /etc-size -5m
[root@tianyun ~]# find /etc -size +5m
-ls //-ls找到的處理動作 不是平時用的ls
ll - h 檢視大小
指定查詢的目錄深度:
-maxdepth levels
-mindepth levels
[root@tianyun ~]# find /-maxdepth 3 -a -name "ifcfg-eth0" maxdepth 3 最大3層 a要滿足2個條件 並且
按時間找(atime,mtime,ctime):
[root@tianyun ~]# find /etc -mtime +5 //修改時間超過5天
[root@tianyun ~]# find /etc-mtime 5 //修改時間等於5天
[root@tianyun ~]# find /etc -mtime -5 //修改時間5天以內
按檔案型別:
[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管道檔案
按檔案許可權:
[root@tianyun ~]# find . -perm 644 -ls .是當前目錄 精確查詢644 *一般都是精確
[root@tianyun ~]# find . -perm
-644 -ls -是包含到意思
帶不帶- 自己對比一下 檢視。 帶-表示只要6就可以
[root@tianyun ~]# find . -perm
-600 -ls
[root@tianyun ~]# find . -perm
-222 -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
==找到後處理的動作 actions: (預設動作-print)==
-ls-delete
-exec 後面跟自定義的shell命令
-ok 後面跟自定義的shell命令
[root@tianyun ~]# find /etc -name "ifcfg*" 後可以加|xargs -h
[root@tianyun ~]# find /etc -name "ifcfg*"
[root@tianyun ~]# find /etc -name "ifcfg*"
-l***ec命令用於呼叫並執行指令的命令
查詢帶root帶檔案 複製到tmp下
find /etc -name 「root*」 -exec cp -rf {} /tmp \; 複製到當前檔案下 /tmp換成.
[root@tianyun ~]# find /etc -name "ifcfg*"
-exec rm -rf {} \; exec為執行一條shell命令 {}為前面的東西\; 格式
[root@tianyun ~]# find /etc -name "ifcfg*"
-delete
擴充套件知識:find結合xargs
[root@tianyun ~]# find . -name "yang*.txt"
|xargs rm -rf !!!!!!!!!!!!!重點 找到之後刪除處理xargs 引數傳遞處理找出後刪除
[root@tianyun ~]# find /etc -name "ifcfg-eth0"
|xargs -i {} cp -rf {} /var/tmp
案例1: 分別找出file5 和除了file5的檔案
[root@tianyun ~]# mkdir dir1
[root@tianyun ~]# touch dir1/file
[root@tianyun ~]# find /root/dir1 -name "file5"
[root@tianyun ~]# find /root/dir1 ! -name "file5" !為取反
[root@tianyun ~]# find /root/dir1 -name "file5" -o -name "file9" 即是file5又是file9
/root/dir1/file5
/root/dir1/file9
擴充套件 不常用
[root@tianyun ~]# find /root/dir1 -name "file5" -o -name "file9" -ls
1466515 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file9
[root@tianyun ~]# find /root/dir1 -name "file5" -ls -o -name "file9" -ls
1466499 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file5
1466515 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file9
[root@tianyun ~]# find /root/dir1 \( -name "file5" -o -name "file9" \)
-ls \為轉譯 不加會報錯
1466499 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file5
1466515 0 -rw-r--r-- 1 root root 0 6月 5 11:15 /root/dir1/file9
[root@localhost ~]# find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \;
removed 『/root/dir1/file5』
removed 『/root/dir1/file9』
1、exec 每處理乙個檔案或者目錄,它都需要啟動一次命令,效率不好;
2、exec 格式麻煩,必須用 {} 做檔案的代位符,必須用 \; 作為命令的結束符,書寫不便。
3、xargs 不能操作檔名有空格的檔案;
綜上,如果要使用的命令支援一次處理多個檔案,並且也知道這些檔案裡沒有帶空格的檔案,
那麼使用 xargs比較方便; 否則,就要用 exec了。
雲計算學習路線
雲計算技術 廠商著名的amazon vmware 基礎linux 核心 部落格書籍深入理解linux 核心 開源產品 openstack 包含了虛擬化 計算 儲存 網路 各種技術的組合,有自己的儲存swift 利用hadoop 平台提供資料分析 虛擬化主流 kvm qemu docker 針對lin...
好程式設計師雲計算分享初識shell
好程式設計師雲計算分享初識shell,shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。實際上shell是乙個命令直譯器,它解釋由使用者輸入的命令並且把它們送到核心。不僅如此,shell有自己的程式語言用 於對命令的編輯,它允許使用者...
好程式設計師雲計算教程分享雲服務和雲計算的區別有那些
好程式設計師雲計算教程分享 雲服務和雲計算的區別 有那些?什麼是雲,什麼不是雲,首先 雲計算確實是非常重要的,雲計算確實是當前非常重要的技術,而且對未來會有非常深刻的影響力。但是,目前雲計算的商業理念,如雲電視 雲手機,把雲炒得完全是一種商業理念。如果這麼延續下去的話,使用者很難分辨什麼是雲,什麼不...