linux shell程式設計 find命令 學習
介面美觀,內容詳細
01. 列出當前目錄以及子目錄下的所有檔案
find
.02. 找到當前目錄下名字為11.png的檔案
find
. -name "11.png"
-o 是或者的意思 ----- or
-a 是而且的意思 ---- and
-not 是相反的意思 --- not
03. 找到當前目錄下的jpg檔案和png檔案
04. 找出當前目錄下不是以png結尾的檔案
find
.! -name "*.png"
find
. -not -name "*.png"
[a-z] // 匹配所有的小寫字母
[a-z] // 匹配所有的大寫字母
[a-za-z] // 匹配所有的字母
[0-9] // 匹配所有的數字
[0-9\.\-] // 匹配所有的數字,句號和減號
05. 根據正規表示式查詢
找到當前目錄下,檔名都是數字的png檔案。
find
. -regex "\./*[0-9]+\.png"
找到當前目錄下,檔名是數字字母的檔案。
find
. -regex "\./*[a-za-z0-9\_\.]+\.log"
./log20210508.log
./log20210508_100.log
./log20210508_1000.log
06. 根據路徑查詢
找出當前目錄下,路徑中包含abc的檔案/路徑。
find
. -path "*abc*"
find
. -name "*abc*"
如果當前 路徑有檔案
abc/abc1.txt
abc/abc2.txt
abc/
f 普通檔案
l 符號連線
d 目錄
c 字元裝置
b 塊裝置
s 套接字
p fifo
07. 通過-type進行檔案型別的過濾。
舉例,查詢當前目錄下,路徑中包含wysiwyg的檔案
find
. -type f -path "*abc*"
-maxdepth 最大深度
-mindepth 最小深度
08. 限制搜尋深度
找出當前目錄下所有的png,不包括子目錄。
find
. -maxdepth 1 -name "*.png"
找出第一級資料夾中包含log.2021-09-11 的檔案
找出第二級資料夾中包含log.2021-09-11 的檔案
find
. -maxdepth 1 -mindepth 1 -name "*log.2021-09-11*"
find
. -maxdepth 2 -mindepth 2 -name "*log.2021-09-11*"
b —— 塊(512位元組)
c —— 位元組
w —— 字(2位元組)
k —— 千位元組
m —— 兆位元組
g —— 吉位元組
09.根據檔案大小過濾
通過-size來過濾檔案尺寸。支援的檔案大小單元如下
舉例來說,找出當前目錄下檔案大小超過100m的檔案、大於100m 小於1g 的檔案
find
. -type f -size +100m
find
. -type f -size +100m -size -2g
訪問時間(-atime/天,-amin/分鐘):使用者最近一次訪問時間。
修改時間(-mtime/天,-mmin/分鐘):檔案最後一次修改時間。
變化時間(-ctime/天,-cmin/分鐘):檔案資料元(例如許可權等)最後一次修改時間。
10. 根據訪問/修改/變化時間
舉例,找出1天內被修改過的檔案
find
. -type f -mtime -1
找出最近1週內被訪問過的檔案
find
. -type f -atime -7
11. 根據許可權
通過-perm來實現。舉例,找出當前目錄下許可權為777的檔案
find
. -type f -perm 777
-user
-group
12. 根據檔案擁有者
找出檔案擁有者為root的檔案
find
. -type f -user root
找出檔案所在群組為root的檔案
find
. -type f -group root
通過-ok、和-exec來實現。區別在於,-ok在執行命令前,會進行二次確認,-exec不會。
13. 找到檔案後執行命令
看下實際例子。刪除當前目錄下所有的js檔案。
用-ok的效果如下,刪除前有二次確認
➜ find
find
. -type f -name "*.js" -ok rm\;
"rm ./1.js"?
試下-exec。直接就刪除了
find
. -type f -name "*.js" -exec rm\;
14. 找出空檔案
touch
.txt
echo
"hello"
>
1.txt
find
. -empty
linux shell 程式設計
bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...
linux shell 程式設計
1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...
Linux Shell 程式設計
檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...