find命令和xargs命令

2021-10-11 10:59:59 字數 2437 閱讀 5075

xargs 傳參

實時查詢檔案,查詢速度慢,精確

find 路徑 [選項]  檔案  [引數]
-name    按檔名查詢

-perm 按檔案許可權查詢

-prune 可以使find不在當前指定目錄下查詢

-user 按檔案屬主查詢

-mtime 按檔案時間查詢

-type /b/d/c/p/l/f 檔案型別,塊裝置、目錄、字元裝置、管道、符號鏈結、普通檔案

-size 檔案大小,位元組(+表示v大於,-表示小於,不帶符號表示等於)

-print   將查詢結果輸出到標準輸出

-exec 將匹配的檔案執行該引數所給的shell命令

find  /docment  -name  *.txt        #根據檔名查詢txt結尾的檔案

find /docment -perm 755 -print #根據檔案許可權查詢檔案

find /usr -mtime 4 #查詢檔案更新時間距現在4天以上5天以內的檔案

find /usr -mtime +4 #查詢檔案更新時間5天以上的檔案

find /usr -mtime -4 #查詢檔案更新時間據現在4天以內的檔案

find /document -size +100m #查詢檔案大於100m的檔案

vim $(find / -name test.txt) #查詢檔案後直接用vim開啟

find 搜尋路徑 [選項] 搜尋內容 -exec 命令2 {} \;

#將find命令的結果由exec呼叫的命令2來處理,{}表示find執行的結果

#-ok選項和-exec選項類似,ok會進行詢問再執行,exec直接執行

find / -user wang -exec cp -a {} /document/file \; 將所有屬於wang使用者的檔案複製到指定路徑

#在當前目錄下(包含子目錄),查詢所有txt檔案並找出含有字串"bin"的行

find ./ -name "*.txt" -exec grep "bin" {} \;

#在當前目錄下(包含子目錄),查詢10天前的log文檔案

find ./ -name ".log" -mtime +10 -exec ls {} \; ( {}和\;中間有空格,\和;中間沒有空格,是連線的)

#在當前目錄下(包含子目錄),刪除10天前的log文文

find ./ -name ".log" -mtime +10 -exec rm {} \;

#在當前目錄下(包含子目錄),刪除所有txt檔案

find ./ -name "*.txt" -exec rm {} \;

#查詢指定檔案的父目錄

find / -name 'myfile' -type f -exec dirname {} \;

-a   與

-o 或

-not 非

find -user test -a -group test 查詢使用者名為test和所屬組為test的檔案

find -user test -o -user ttt 查詢使用者名為test或ttt的檔案

find -not test 查詢使用者名稱不是test的檔案

find . -size +2k -a -type f 當前目錄下搜尋大於2kb,且檔案型別為普通檔案

將乙個命令輸出轉成命令引數傳遞給後續命令

some command | xargs [選項]  command

選項 -a 從檔案中讀入作為輸入

-n 後面加次數,表示執行一次用幾個引數,預設是所有

-t 先列印,再執行

-i 或者i看系統支援替換字元,表示檔案內容

ls *.sh | xargs ls -al      #將ls輸出的引數作為引數執行後續命令

ls *.sh | xargs -t ls -al #在執行後續命令前先列印要執行的命令

ls *.sh | xargs -t -i '{}' mv {} {}.bak #將所有的.sh結尾的檔案,都加上.bak字尾。-i 指定'{}'表示將後面命令列的{}替換成前面解析出來的引數,預設指定{}

ls *sh | xargs -t -n2 ls -al #將引數以2個為一組傳遞給後續命令

ls | grep –vm "test" | xargs rm –rf {} #刪除當前目錄行除test檔案的所有檔案

Linux的find和xargs命令

如果需要把一條命令在標準輸出上的輸出結果,轉換為另乙個程式或或者另乙個命令的引數,可以用xargs命令。man xargs 可以看到例子 1 find tmp name core type f print xargs bin rm f 用find命令在tmp目錄下查詢以core命名的檔案,然後刪除它...

find命令處理之exec與xargs區別

對符合條件的檔案執行所給的linux 命令,而不詢問使用者是否需要執行該命令。表示命令的引數即為所找到的檔案,以 表示comman命令的結束。是轉義符,因為分號在命令中還有它用途,所以就用乙個 來限定表示這是乙個分號而不是表示其它意思。ok 和 exec的作用相同,格式也一樣,只不過以一種更為安全的...

高階命令 xargs命令

xargs命令 linux 命令大全 xargs 英文全拼 extended arguments 是給命令傳遞引數的乙個過濾器,也是組合多個命令的乙個工具。xargs 可以將管道或標準輸入 stdin 資料轉換成命令列引數,也能夠從檔案的輸出中讀取資料。xargs 也可以將單行或多行文字輸入轉換為其...