find 命令詳解
如果需要把一條命令在標準輸出上的輸出結果,轉換為另一個程式或或者另一個命令的引數,可以用xargs命令。
# man xargs
可以看到例子:
1、 find /tmp -name core -type f -print | xargs /bin/rm -f
用find命令在tmp目錄下查詢以core命名的檔案,然後刪除它們。需要注意的是如果檔名字包含新行或者空格的話,這條命令將會被錯誤操作。
2、find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
這條命令就正確地處理了新行和空格,有可能帶來的錯誤。
這條命令和上一條意思一樣。
3、cut -d: -f1 < /etc/passwd | sort | xargs echo
大概列舉了系統的使用者。
4、find ./ -type f -print | xargs -i mv -f {} ./newdir
-i 表示 find 傳遞給xargs的結果 由{}來代替
注意:cshell和tcshell中,需要將{}用單引號、雙引號或反斜槓,否則不認識。bash可以不用。建議加上。
例如:
find ./ -type f -print | xargs -t -i mv -f "{ }" ./newdir 列印顯示
find ./ -type f -print | xargs -p -i mv -f "{ }" ./newdir 詢問是否執行?
find ./ -type f -print | xargs -t -p -i mv -f "{ }" ./newdir 列印顯示,並詢問是否執行?
管道是把一個命令的輸出傳遞給另一個命令作為輸入,比如:
command1 | command2
但是command2僅僅把輸出的內容作為輸入引數。
find . -name "install.log" -print列印出的是install.log這個字串,如果僅僅使用管道,那麼command2能夠使用的僅僅是install.log這個字串, 不能把它當作檔案來進行處理。當然這個command2除了xargs。xargs就是為了能夠對find搜尋到的檔案進行操作而編寫的。它能把管道傳來 的字串當作檔案交給其後的命令執行。
舉個例子:
(1)$find . -name "install.log" -print | cat
./install.log #顯示從管道傳來的內容,僅僅作為字串來處理
(2)$find . -name "install.log" -print | xargs cat
aaaaaa #將管道傳來的內容作為檔案,交給cat執行。也就是說,該命令執行的是如果存在install.log,那麼就列印出這個檔案的內容。
透過這個例子,應該很容易理解這樣有什麼不同了。當你要對匹配檔案操作時,使用find and xargs。其實這都是運用了管道。xargs是shell命令的一個,可以把管道輸入的內容轉化為其引數要操作的檔案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1300111/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- find命令詳解
- `find` 命令詳解
- Linux find 命令詳解Linux
- Linux find命令詳解Linux
- find 命令的引數詳解
- (轉)Linux find命令詳解Linux
- Linux下find命令詳解Linux
- Linux/Unix重要find命令詳解Linux
- Linux中find命令-path -prune用法詳解Linux
- find命令的exec選項用法詳解(轉)
- linux下find,xargs命令詳解和例項Linux
- 每天一個 Linux 命令(22):find 命令的引數詳解Linux
- linux find詳解(轉)Linux
- find 命令
- find命令
- find和xargs使用詳解(轉)
- 三劍客詳解之find
- find -newer命令
- Linux檔案查詢命令find,xargs詳述Linux
- Linux/Unix 檔案查詢命令 find, xargs 詳述Linux
- Linux檔案查詢命令find,xargs詳述(轉)Linux
- find 命令入門
- grep、find命令整理
- Find命令總彙
- find 命令專題
- linux find命令Linux
- linux find 命令Linux
- Find命令練習
- linux find 命令!Linux
- find 命令全面解析
- find 命令及其示例
- 對find命令的進一步瞭解
- 『學了就忘』Linux基礎命令 — 30、find命令詳細說明Linux
- Dockerfile 命令詳解Docker
- tcpdump命令詳解TCP
- getsebool命令詳解
- w命令詳解
- GCC命令詳解GC