最近处理数据,常常需要对某个文件夹下的所有文件进行重命名,例如所有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
Linux基础教程:find与xargs:http://www.linuxdiyf.com/linux/10634.html
如何在Linux里使用xargs命令:http://www.linuxdiyf.com/linux/3879.html
AIX中find命令和xargs命令介绍:http://www.linuxdiyf.com/linux/1411.html