Shell指令碼學習筆記

2021-07-04 13:00:27 字數 1525 閱讀 7593

find 命令

1.基於檔名或者正規表示式搜尋

例子:匹配多個條件 find . \( -name "*.txt" -o -name "*.pdf" \) -print 找到當前目錄中所有txt pdf檔案輸出

加-o 表示or條件  \(  \)將中間部分視為乙個整體

find  . -regex ".*\( \.py\|\.sh\)$「  -regex 基於正規表示式匹配

2.基於目錄深度搜尋

用 -maxzdepth指定最大深度

3.根據檔案型別搜尋

用 - type對檔案搜尋進行過濾 -type f表示只搜尋普通檔案 l表示符號鏈結 d 目錄 s 套接字

4.利用find執行命令或者動作

加上-exec選項   例如 find . -type f -user root -exec chown slynux {} \    {}將會被替換為所有匹配的檔名

可以結合printf 輸出有用資訊 例如 find . -type f -name "*.txt" -exec printf "text file: %s\n" {} \

將find出來的東西拷到另乙個地方

find *.c -exec cp 『{}』 /tmp 『;』

5.find和xargs的結合使用

xargs結合find使用

來自:

xargs結合find使用

來自:

重新命名find出的檔案

find / -name a | xargs -i mv {} b

# {} 代表找到的檔案

# -i 或者是-i,這得看linux支援了,將xargs的每項名稱,一般是一行一行賦值給{},可以用{}代替。

用rm 刪除太多的檔案時候,可能得到乙個錯誤資訊:/bin/rm argument list too long. 用xargs去避免這個問題:

來自:

用rm 刪除太多的檔案時候,可能得到乙個錯誤資訊:/bin/rm argument list too long. 用xargs去避免這個問題:

來自:

用find匹配並列出所有的.txt檔案 然後用xargs將這些檔案刪除

find . -type f -name "*.txt" -print0 | xargs -0 rm -f   這樣刪除所有.txt 檔案 xargs -0 將\0作為輸入定界符

也可以加 -delete選項來刪除find . -type f -name "*.txt" -delete

shell指令碼學習筆記

學習筆記 1,檔案名字命名為 sh,字尾sh表明這是乙個bash指令碼檔案 2,shell指令碼的第一行如下 bin sh bin sh告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的shell程式 3,寫完指令碼後儲存檔案,然後將檔案變成可執行檔案 chmod x test.sh 4,以下是乙個...

Shell指令碼 學習筆記

編寫輸出hello world的程式是入門的第一步 1.vim helloworld.sh 2.輸入 i 進入插入模式 開始寫指令碼 bin sh echo hello world 3.執行shell指令碼 chmod 0777 helloworld.sh 賦予執行許可權 helloworld.sh...

Shell指令碼學習筆記

本是最近在學習elastic search,但是每次啟動乙個集群環境的時候,需要執行繁瑣的命令,於是補了下shell指令碼,編寫個簡單的shell指令碼用於一鍵啟動我的集群環境,方便自己的學習。以下是在學習過程中的一些個人筆記。個人編寫的指令碼案例可以參見博文 編寫elastic search ki...