一天一命令-xargs
阿新 • • 發佈:2017-06-18
xargs
一天一命令-xargs
xargs
傳遞標準輸入作為下一個命令的參數或者重新格式化並輸出
xargs默認命令是echo,默認分隔符是空格。xargs可以將輸入文本轉換為單行或多行顯示,即指定每行顯示的個數。
Usage: xargs [OPTION]... COMMAND INITIAL-ARGS... -0 顯示為一列,默認顯示為一行,以空格為分隔符 -a file 從文件讀取數據而非標準輸入 -d 指定分隔符 -l num 指定每行顯示的參數個數 -n num 指定以空格為分隔符顯示每行的參數個數,如果一個文件(或參數)之間有空格,將被分割為兩個文件(或參數)
ls /root/ |xargs
ls /root/ |xargs -d\空格 -l2 //註意空格需要轉義
#touch a\ b.txt //創建一個文件名包含空格的文件 #ls a b.txt Desktop/ Downloads/ Pictures/ script/ Videos/ a.log Documents/ Music/ Public/ Templates/ #ls | xargs //默認顯示為一行,並且以空格為分隔符,所以文件a b.txt將會被分割為兩個文件a和b.txt a b.txt a.log Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ script/ Templates/ Videos/ #ls | xargs -0 //-0顯示為一列,就不會出現上面的問題,推薦使用 a b.txt a.log Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ script/ Templates/ Videos/
#ls | xargs -n3 a b.txt a.log //-n3應該顯示為每行3個文件,但因為文件a b.txt之間有空格,所以被分割為2個文件顯示 Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ script/ Templates/ Videos/ #ls | xargs -l3 a b.txt a.log Desktop/ //-l正常顯示每行3個文件 Documents/ Downloads/ Music/ Pictures/ Public/ script/ Templates/ Videos/ #echo "a:b:c:d:e" |xargs -d: a b c d e #echo "a:b:c:d:e" |xargs -d: -n2 a b c d e
如果需要刪除的文件數目太多,提示文件名太長,則可以通過xargs命令自動逐個刪除
#find . -type f -name "*.log" -print | xargs -0 rm -f
復制當前目錄下的*.jpg到/data/images
#ls *.jpg | xargs -n1 -I cp {} /data/images
統計一個源代碼目錄中所有php文件的個數
#find . -type f -name "*.php" -print | xargs -0 wc -l
查找所有的jpg 文件,並且壓縮它們
#find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz
假如你有一個文件包含了很多你希望下載的URL,你能夠使用xargs下載所有鏈接
#cat url-list.txt | xargs wget -c
本文出自 “rackie” 博客,請務必保留此出處http://rackie386.blog.51cto.com/11279229/1939444
一天一命令-xargs