xargs

find /tmp/ -name "*.log" -mtime +4 | xargs -i -t mv {} /home/

find /tmp/ -name "*.log" -mtime +4 -print0 | xargs -0 rm -f

xargs(1)

xargs是給命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它把一個數據流分割為一些足夠小的塊,以方便過濾器和命令進行處理。通常情況下,xargs從管道或者stdin中讀取數據,但是它也能夠從文件的輸出中讀取數據。xargs的默認命令是echo,這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。

1.選項解釋

-0 當sdtin含有特殊字元時候,將其當成一般字符,想/'空格等
例如:root@localhost:~/test#echo "//"|xargs echo
root@localhost:~/test#echo "//"|xargs -0 echo
/
-a file 從文件中讀入作為sdtin

-e flag 注意有的時候可能會是-E,flag必須是一個以空格分隔的標志,當xargs分析到含有flag這個標志的時候就停止。

-p 當每次執行一個argument的時候詢問一次用戶。

-n num 后面加次數,表示命令在執行的時候一次用的argument的個數,默認是用所有的。

-t 表示先打印命令,然后再執行。

-i 或者是-I 將xargs的每項名稱,一般是一行一行賦值給{},可以用{}代替。

-r no-run-if-empty 當xargs的輸入為空的時候則停止xargs,不用再去執行了。

-s num 命令行的最好字符數,指的是xargs后面那個命令的最大命令行字符數。

-L num Use at most max-lines nonblank input lines per command line.-s是含有空格的。

-l 同-L

-d delim 分隔符 默認的xargs分隔符是回車,argument的分隔符是空格,這里修改的是xargs的分隔符

-x exit的意思 主要是配合-s使用。

-P 修改最大的進程數,默認是1,為0時候為as many as it can ,這個例子我沒有想到,應該平時都用不到的吧。

2.實例

xargs 是一個強有力的命令,它能夠捕獲一個命令的輸出,然后傳遞給另外一個命令,下面是一些如何有效使用xargs 的實用例子。

1. 當你嘗試用rm 刪除太多的文件,你可能得到一個錯誤信息:/bin/rm Argument list too long. 用xargs 去避免這個問題
find ~ -name ‘*.log’ -print0 | xargs -0 rm -f

2. 獲得/etc/ 下所有*.conf 結尾的文件列表,有幾種不同的方法能得到相同的結果,下面的例子僅僅是示范怎么實用xargs ,在這個例子中實用 xargs將find 命令的輸出傳遞給ls -l
# find /etc -name "*.conf" | xargs ls –l

3. 假如你有一個文件包含了很多你希望下載的URL, 你能夠使用xargs 下載所有鏈接
# cat url-list.txt | xargs wget –c

4. 查找所有的jpg 文件,并且壓縮它
# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

5. 拷貝所有的圖片文件到一個外部的硬盤驅動
# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

6. -i命令

$ ls | xargs -t -i mv {} {}.bak
-i 選項告訴 xargs 用每項的名稱替換 {}。-t 選項指示 xargs 先打印命令,然后再執行。

Xargs用法詳解

xagrs(2)

1.?簡介

??之所以能用到這個命令,關鍵是由于很多命令不支持|管道來傳遞參數,而日常工作中有有這個必要,所以就有了xargs命令,例如:

find?/sbin?-perm?+700?|ls?-l???????這個命令是錯誤的

find?/sbin?-perm?+700?|xargs?ls?-l???這樣才是正確的

xargs?可以讀入?stdin?的資料,并且以空白字元或斷行字元作為分辨,將?stdin?的資料分隔成為?arguments?。?因為是以空白字元作為分隔,所以,如果有一些檔名或者是其他意義的名詞內含有空白字元的時候,?xargs?可能就會誤判了~他的用法其實也還滿簡單的!就來看一看先!

2.?選項解釋

-0?sdtin含有特殊字元時候,將其當成一般字符,想/'空格等

例如:root@localhost:~/test#echo?"//"|xargs??echo?

??????root@localhost:~/test#echo?"//"|xargs?-0?echo?

???????/

-a?file?從文件中讀入作為sdtin,(看例一)

-e?flag?,注意有的時候可能會是-Eflag必須是一個以空格分隔的標志,當xargs分析到含有flag這個標志的時候就停止。(例二)

-p?當每次執行一個argument的時候詢問一次用戶。(例三)

-n?num?后面加次數,表示命令在執行的時候一次用的argument的個數,默認是用所有的。(例四)

-t?表示先打印命令,然后再執行。(例五)

-i?或者是-I,這得看linux支持了,將xargs的每項名稱,一般是一行一行賦值給{},可以用{}代替。(例六)

-r?no-run-if-empty?xargs的輸入為空的時候則停止xargs,不用再去執行了。(例七)

-s?num?命令行的最好字符數,指的是xargs后面那個命令的最大命令行字符數。(例八)

?

-L??num?Use?at?most?max-lines?nonblank?input?lines?per?command?line.-s是含有空格的。

-l??同-L

-d?delim?分隔符,默認的xargs分隔符是回車,argument的分隔符是空格,這里修改的是xargs的分隔符(例九)

-x?exit的意思,主要是配合-s使用。

-P?修改最大的進程數,默認是1,為0時候為as?many?as?it?can?,這個例子我沒有想到,應該平時都用不到的吧。

3.?應用舉例

例一:

root@localhost:~/test#cat?test?

#!/bin/sh

echo?"hello?world/n"

root@localhost:~/test#xargs?-a?test?echo

#!/bin/sh?echo?hello?world/n

root@localhost:~/test#

例二:

root@localhost:~/test#cat?txt

/bin?tao?shou?kun

root@localhost:~/test#cat?txt|xargs?-E?'shou'?echo

/bin?tao

root@localhost:~/test#

例三:

root@localhost:~/test#cat?txt|xargs?-p?echo

echo?/bin?tao?shou?kun?ff??...y

/bin?tao?shou?kun?ff

例四:

root@localhost:~/test#cat?txt|xargs?-n1?echo

/bin

tao

shou

kun

root@localhost:~/test3#cat?txt|xargs??echo

/bin?tao?shou?kun

例五:

root@localhost:~/test#cat?txt|xargs?-t?echo

echo?/bin?tao?shou?kun?

/bin?tao?shou?kun

例六:

$?ls?|?xargs?-t?-i?mv?{}?{}.bak

例七:

root@localhost:~/test#echo?""|xargs?-t?mv

mv?

mv:?missing?file?operand

Try?`mv?--help'?for?more?information.

root@localhost:~/test#echo?""|xargs?-t?-r??mv

root@localhost:~/test#

(直接退出)

例八:

root@localhost:~/test#cat?test?|xargs?-i?-x??-s?14?echo?"{}"

exp1

exp5

file

xargs:?argument?line?too?long

linux-2

root@localhost:~/test#

例九:

root@localhost:~/test#cat?txt?|xargs?-i?-p?echo?{}

echo?/bin?tao?shou?kun??...y

root@localhost:~/test#cat?txt?|xargs?-i?-p?-d?"?"?echo?{}

echo?/bin??...y

echo?tao??.../bin

y

echo?shou??...tao

再如:

root@localhost:~/test#cat?test?|xargs?-i?-p?-d?"?"?echo?{}

echo?exp1

exp5

file

linux-2

ngis_post

tao

test

txt

xen-3

??...y

root@localhost:~/test#cat?test?|xargs?-i?-p?echo?{}

echo?exp1??...y

echo?exp5??...exp1

y

echo?file??...exp5

y

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397742.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397742.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397742.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

export mysql home_mysql的Linux下安裝筆記

注:在5.7之后MySQL不在生成my-default.cnf配置。tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz/ /usr/local/mysql新建 useradd mysql新建文件夾mkdir /usr/local/mysql/data生成配置:./mysqld -…

[轉]DevExpress GridControl 關于使用CardView的一點小結

最近項目里需要顯示商品的一系列圖片,打算用CardView來顯示,由于第一次使用,遇到許多問題,發現網上這方面的資源很少,所以把自己的一點點實際經驗小結一下,供自己和大家以后參考。 1、選擇CardView&#xf…

thinkphp5 ajax搜索+分頁

<center> <table > <tr> 水果名稱<input type"text" name"f_name" class"f_name"> 水果分類 &…

EventBus學習

EventBus是android 下高效的發布/訂閱事件總線機制&#xff0c;可以代替傳統的Intent&#xff0c;Handler&#xff0c;BroadCast 或者Fragment&#xff0c;Activity&#xff0c;Service&#xff0c;線程之間傳遞數據&#xff0c;是一種發布訂閱設計模式&#xff08;觀察者模式&…

Uediter的引用和取值

頁面應用Uediter控件&#xff0c;代碼如下&#xff1a; <tr><td align"center" class"xwnr_j"><asp: TextBox ID "txtContent" TextMode "MultiLine" Height "274px" Width "95%" runat"serv…

java程序 構建mycircle類_Java語言程序設計(十九)對象和類的應用實例

1.我們定義一個Circle類并使用該類創建對象&#xff0c;我們創建三個圓對象&#xff0c;1.0&#xff0c;25和125&#xff0c;然后顯示這三個圓的半徑和面積&#xff0c;將第二個對象的半徑改為100&#xff0c;然后顯示它的新半徑和面積。程序清單如下&#xff1a;package testc…

Django拋錯不存在(DoesNotExist)

from django.core.exceptions import ObjectDoesNotExist try:disabledusers.objects.get(sAMAccountNameliu) except ObjectDoesNotExist:print a except modelname.DoesNotExist:轉載于:https://www.cnblogs.com/dreamer-fish/p/5835465.html

mysql ddl dql_mysql DDL、DML、DCL、DQL區分

mysql [Structure Query Language] 的組成分4個部分&#xff1a;DDL [Data Mefinition Language] 數據定義語言DML [Data Manipulation Language]  數據操縱語言DCL [Data Control Language] 數據控制語言DQL [Data Query Language ] 數據查詢語言1、…

hiho圖的聯通性(自留)

無向圖割邊割點算法 而當(u,v)為樹邊且low[v]>dfn[u]時&#xff0c;表示v節點只能通過該邊(u,v)與u連通&#xff0c;那么(u,v)即為割邊。 1 void dfs(int u) {2 //記錄dfs遍歷次序3 static int counter 0; 4 5 //記錄節點u的子樹數6 int children …

《Git權威指南》筆記2

2019獨角獸企業重金招聘Python工程師標準>>> ###Git克隆 Git使用git clone命令實現版本庫克隆&#xff0c;主要有如下3種用法&#xff1a; 1&#xff09;git clone <repository> <direcctory> 將repository指向的版本庫創建一個克隆島directory目錄。目…

SQL數據庫掛起 SQL數據庫附加報錯 SQL數據庫824錯誤修復

SQL數據庫掛起 SQL數據庫附加報錯 SQL數據庫824錯誤修復 數據類型 MSSQL 2012數據大小 4.5 GB故障檢測 附加數據庫提示824錯誤 一般是由于斷電非法關機導致頁面損壞。客戶要求 恢復數據庫數據 ERP可直接使用。修復結果 文件傳來后 檢測發現頁面沒有及時正常關閉導致SQL認為頁不…

查找算法

a. 線性查找&#xff1a;從數據中&#xff0c;第一個元素開始查找&#xff0c;將其與查找的值進行比對&#xff0c;如果相同&#xff0c;就停止查找&#xff0c;如果不相同&#xff0c;則繼續下一個元素的比對。直到查找到匹配的值&#xff0c;或者是有數據遍歷完畢&#xff0c…

mysql測試數據圖表_mysql測試數據表

1.截取至后盾人用于mysql數據測試請在navicat中執行一下命令生成測試數據表/*Navicat Premium Data TransferSource Server : 我的本地連接Source Server Type : MySQLSource Server Version : 50726Source Host : localhost:3306Source Schema : laravelTarget Server Type : …

常用歸檔壓縮命令

1. 打包tar打包表示把一堆文件變成一個tar ####打包工具-f ####指定生成包的名字-c ####創建包-v ####顯示創建過程-t ####查看包中內容-x ####解包-r ####添加文件到包中--delete filename ##刪除包中指定文件--get filename ##取出包中指定文件cffrcvf 等組合使用2. 壓縮…

spring集合的注入

<bean id"date" class"java.util.Date"></bean> <bean id"test" class"test.Test"> <!--注入list-->   <property name"list">     <list>       <value>1</valu…

爬蟲實戰篇---12306搶票爬蟲

&#xff08;1&#xff09;、前言 &#xff08;此代碼經過我的實測具有較強的實用型)每逢佳節&#xff0c;大家對于回家搶票這件事是不是特別頭疼呢&#xff1f;今天我在網上發現了這個代碼&#xff0c;通過一天的學習&#xff0c;與大家分析下&#xff0c;大家可以直接拿來進行…

php和mysql處理樹狀_分級_無限分類_分層數據的方法_PHP和MySQL處理樹狀、分級、無限分類、分層數據的方法...

文章標題中的多個詞語表達的其實是一個意思&#xff0c;就是遞歸分類數據&#xff0c;分級數據非常類似數據結構中的樹狀結構&#xff0c;即每個節點有自己的孩子節點&#xff0c;孩子結點本身也是父親節點。這是一個遞歸、分層形式。可以稱之為樹形層級數據。層級數據結構是編…

LeetCode 70. Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 一開始想用排列組合的方式&#xff0c;但是公式不太好些&#xff0c;后來想用遞歸的方式&#x…

04 java 基礎:數據類型

java 數據類型&#xff1a;基本類型與引用類型 基本類型&#xff1a;數值型&#xff0c;其中數值型分為整型、浮點型&#xff0c;整型包括 byte、short 、int、long &#xff0c;默認為 int 類型。浮點類型分為單精度、雙精度&#xff0c;分為 float、double &#xff0c;默認為…

Git 遠程倉庫分支管理

目錄 目錄速查表關聯遠程代碼倉庫克隆遠程倉庫 分支管理創建分支 切換分支合并分支刪除分支解決沖突速查表 指令作用git branch查看分支git branch newBranchName創建分支git checkout branchName切換分支giit checkout -b newBranchName創建切換分支git merge branchName合并分…