Linux之xargs命令
- 2019 年 11 月 6 日
- 筆記
01
—
xargs命令
xargs命令是給其他命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它擅長將標準輸入數據轉換成命令行參數,xargs能夠處理管道或者stdin並將其轉換成特定命令的命令參數。xargs也可以將單行或多行文本輸入轉換為其他格式,例如多行變單行,單行變多行。xargs的默認命令是echo,空格是默認定界符。這意味著通過管道傳遞給xargs的輸入將會包含換行和空白,不過通過xargs的處理,換行和空白將被空格取代。xargs是構建單行命令的重要組件之一。
xargs命令的用法
xargs用作替換工具,讀取輸入數據重新格式化後輸出。
例子:定義一個測試文件,包含多行文本數據:
touch test.txt |
---|
然後輸入:

cat test.txt | xargs |
---|

-n 可以選擇多行輸出
cat test.txt | xargs -n3 |
---|
每一行輸出三個

-d選項可以自定義分隔字元
echo "abcdX abcdX abcdX abcd" | xargs -dX -n2 |
---|
以X作為分隔符,每行輸出兩個。

-e flag ,注意有的時候可能會是-E,flag必須是一個以空格分隔的標誌,當xargs分析到含有flag這個標誌的時候就停止
xargs -E 『e』 -a test.txt echo |
---|
輸出到e就停止

常見用途:
1.查找所有的jpg 文件,並且壓縮它們:
find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz |
---|
2.假如你有一個文件包含了很多你希望下載的URL,你能夠使用xargs下載所有鏈接:
cat url-list.txt | xargs wget -c |
---|
3.查找含有目標字元串的文件
find . -name 「*.*」|xargs grep 「string」 |
---|
4.在當前目錄下查找所有用戶具有讀、寫和執行許可權的文件,並收回相應的寫許可權:
find . -perm -7 -print | xargs chmod o-w |
---|
5.查找系統中的每一個普通文件,然後使用xargs命令來測試它們分別屬於哪類文件
find . -type f -print | xargs file |
---|
6.嘗試用rm 刪除太多的文件,你可能得到一個錯誤資訊:/bin/rm Argument list too long. 用xargs 去避免這個問題
find ~ -name 『*.log』 -print0 | xargs -i -0 rm -f {} |
---|
7、拷貝所有的圖片文件到一個外部的硬碟驅動
ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory |
---|
02
—
今天完成的事情
今天完成了SQL審核的第三個部分中的幾個功能: 1.庫名,表名不能大寫(此過程中寫了一個弱智的C++程式,下面貼出來,後續需要努力回憶C++語法,DBA做的久了,都不會開發了。); 2.不允許SQL使用外鍵; 3.索引必須用idx_開頭,唯一索引必須使用uniq_開頭,臨時表必須使用tmp開頭; 除此之外,還完成了密碼管理模組的前端頁面設計和內容輸出,並且整理了相應的文檔,以後盡量提高工作效率,做更多的事情。

明天繼續完善SQL審核的功能,然後盡量那些需要訂製的資訊給訂製出來。加油!!!