工作經常需要用find結合其它命令一起使用,下面介紹4種結合方式.
例: 用find查找/data目錄下,以.txt文件結尾的文件並復制到/tmp下
方法一
find與|xargs是黃金搭檔,-t 參數指定目標目錄(效率高,因為 xargs 會讓命令作為一行來執行.)
[root@Jonnyan ~]# find /data/ -type f -name"*.txt" | xargs cp -t /tmp
方法二
{} 大括號里的內容為find命令找到的結果(效率低,因為 exec 會讓命令分多次執行.)
[root@Jonnyan ~]# find /data/ -type f -name"*.txt" -exec cp {} /tmp \;
方法三
$()=
存放命令的執行結果
[root@Jonnyan ~]# cp $(find /data/ -type f -name"*.txt") /tmp
方法四
-i 參數指定找到的結果放到{}中
[root@Jonnyan ~]# find/data/ -type f -name "*.txt" | xargs -i cp{} /tmp
find 排除多個目錄
find /tmp/jonny \( -path /tmp/jonny/dir1 -o -path /tmp/jonny/file1 \) -prune -o -name "*" -print
- 在 shell 中,"與" 和 "或" 有兩種表達方式。
- 在 shell 中,"與" 的運算符為 "-a",同時,"與" 的邏輯運算符也可以用 "&&" 表示。
- 在 shell 中,"或" 的運算符為 "-o",同時,"或" 的邏輯運算符也可以用 "||" 表示。
解釋參考:http://www.zsythink.net/archives/1154