好程式設計師雲計算學習路線分享雲計算之檔案查詢

2021-09-27 09:16:24 字數 4651 閱讀 5420

好程式設計師雲計算學習路線系列分享雲計算之檔案查詢

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)==

-print

-ls-delete

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

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

[root@tianyun ~]# find /etc -name "ifcfg*" 後可以加|xargs -h

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

-print

[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有自己的程式語言用 於對命令的編輯,它允許使用者...

好程式設計師雲計算教程分享雲服務和雲計算的區別有那些

好程式設計師雲計算教程分享 雲服務和雲計算的區別 有那些?什麼是雲,什麼不是雲,首先 雲計算確實是非常重要的,雲計算確實是當前非常重要的技術,而且對未來會有非常深刻的影響力。但是,目前雲計算的商業理念,如雲電視 雲手機,把雲炒得完全是一種商業理念。如果這麼延續下去的話,使用者很難分辨什麼是雲,什麼不...