Linux下xargs和-exec的使用及區(qū)別說明
xargs和-exec使用與區(qū)別
一、使用方法
- 兩者都是對符合條件的文件執(zhí)行所給的Linux 命令,而不詢問用戶是否需
- 要執(zhí)行該命令
-exec:
- {}表示命令的參數(shù)即為所找到的文件,以;表示comman命令的結(jié)束,\是轉(zhuǎn)義符,
- 因為分號在命令中還有它用途,所以就用\來表示這是一個分號而不是表示其它意思
find testdir/ -type f -exec echo {} \;

xargs:
要結(jié)合管道來完成
格式:find [option] express |xargs command
find testdir/ -type f | xargs cat

二、區(qū)別及優(yōu)缺點
1、使用echo命令測試
find testdir/ -type f
find testdir/ -type f -exec echo {} \;
find testdir/ -type f | xargs echo

1)exec是對每個找到的文件都執(zhí)行一次命令(除非這單個的文件名超過了幾k,否則不會出現(xiàn)命令行超長出報錯的問題)
2)xargs是把所有找到的文件名全部轉(zhuǎn)給命令(當文件很多時,這些文件名組合成的命令行參數(shù)很容易超長,導(dǎo)致命令出錯)
2、xargs在處理帶空格的文件名時會出錯
新建一個帶空格的文件:
touch testdir/'space file'

分別使用xargs、-exec測試
find testdir/ -type f | xargs cat
find testdir/ -type f -exec cat {} \;

3、區(qū)別及各自優(yōu)缺點
1)exec 每處理一個文件或者目錄,它都需要啟動一次命令;
2)exec 格式麻煩,必須用 {} 做文件的代位符,必須用 ; 作為命令的結(jié)束符;
3)xargs 不能操作文件名有空格的文件;
綜上,如果要使用的命令支持一次處理多個文件,并且知道這些文件里沒有帶空格的文件,那么使用 xargs比較方便; 否則,就要用 -exec。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Linux常用命令的用法(二)————文本編輯器命令vi/vim
這篇文章主要介紹了Linux常用命令的用法(二)————文本編輯器命令vi/vim,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Linux服務(wù)器上查看內(nèi)網(wǎng)IP和公網(wǎng)IP的方法小結(jié)
本文介紹如何在Linux系統(tǒng)中查看本機的公網(wǎng)IP地址和內(nèi)網(wǎng)IP地址,對于公網(wǎng)IP地址,可以通過curl命令調(diào)用第三方服務(wù)如ifconfig.me或cip.cc獲取;而內(nèi)網(wǎng)IP地址則可以直接使用ifconfig命令查看,需要的朋友可以參考下2025-12-12
linux網(wǎng)絡(luò)知識詳解:iptables 規(guī)則介紹
這篇文章主要介紹了linux網(wǎng)絡(luò)知識詳解:iptables 規(guī)則介紹,需要的朋友可以參考下2024-02-02
centos7利用yum安裝lnmp的教程(linux+nginx+php7.1+mysql5.7)
lnmp相信不用多介紹了,大家應(yīng)該都知道,下面這篇文章主要給大家介紹了關(guān)于centos7利用yum安裝lnmp(linux+nginx+php7.1+mysql5.7)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2018-03-03

