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...