管道后接cp的用法

有的时候可能出现类似这样的应用场景:

        先用一段命令输出一个文件名的列表,然后需要将这个列表里的文件拷贝到某个目录下。

错误的代码这么写:

cat filelist | cp destdir

按照上面的写法,管道后面的命令实际上是:

cp destdir $file       # file 表示filelist中的一个文件名
显然,上面的命令倒置了源文件和目标路径。

正确的写法是这样:

cat filelist | cp -t destdir
#or
cat filelist | xargs -I {} cp {} destdir

查看man手册可以知道cp -t选项和xargs -I选项的用法。

cp [OPTION]... -t DIRECTORY SOURCE...
xargs -I replace-str cp replace-str destdir
xargs的-I选项指定一个占位符,供cp使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值