linux批量重命名之xargs

来源:互联网 发布:java 6 jre 32位下载 编辑:程序博客网 时间:2024/06/05 08:43

最近处理数据,常常需要对某个文件夹下的所有文件进行重命名,例如所有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
0 0