最近處理數據,常常需要對某個文件夾下的所有文件進行重命名,例如所有xxx重命名爲xxx.txt
所以寫了個shell腳本,用for循環來完成
今天無意中看到一個Linux命令非常適合完成該任務——xargs:
ls | xargs -t -i mv {} {}.txt
-i 選項告訴 xargs 用每項的名稱替換 {}。-t 選項指示 xargs 先打印命令,然後再執行。
非常簡單。
然後發現xrags真的是一個非常有用的命令,它的主要功能是將上一個命令的輸出,作爲下一個命令的輸入參數,和用for循環逐個運行是一樣的效果,但是更簡單,效率也會更高。
例如:
刪除文件夾下所有空文件:
find . -name "*" -type f -size 0c | xargs -n 1 rm -f
下載文本里面的所有鏈接:
cat url-list.txt | xargs wget –c
批量壓縮:
find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
逐個編輯文件:
file * | xargs vi