情景再现:文件夹train中有40000张图片,打开时加载很慢,希望copy其中200出来。
当时想到的是cp train/$(ls | head 200) …,但是这个没有把train分别加上去
后来搜索到ls | head 200 | xargs -i cp {} …,发现xargs功能可以好好学习下,故做此记录。
How to Use the xargs Command on Linux
在检查查看完中文介绍后阅读英文介绍,通过这个网页基本明白了xargs的用法。
其中自己有些不懂的是:
echo ~/Backups/ ~/Documents/page-files/ | xargs -n 1 cp -v ./*.page
自己试着补充{},不过会报错
echo ~/Backups/ ~/Documents/page-files/ | xargs -n 1 -I {} cp -v ./*.page {}
自己理解没有{}时默认前面的输出的后面命令的最有一个参数(例如后面的tar命令),在 -n 1后在使用{}则报错,不过可以转化为:
echo ~/Backups/ ~/Documents/page-files/ | xargs -n 1 | xargs -I {} cp -v ./*.page {}