LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: xw_xiao

ls -1 | xargs tar xvjf怎么不行呀?

[复制链接]
发表于 2007-8-15 16:45:18 | 显示全部楼层
########
回复 支持 反对

使用道具 举报

发表于 2007-8-15 16:52:51 | 显示全部楼层
我测试了一下
测试命令如下:
xargs模式
ls -1 | xargs -n1 ls -l
运行时间
real    0m0.119s
user    0m0.006s
sys     0m0.104s
for循环模式
for i in *
do
        ls -l $i
done
real    0m0.118s
user    0m0.010s
sys     0m0.097s
差不太多
回复 支持 反对

使用道具 举报

发表于 2007-8-16 00:12:34 | 显示全部楼层
Post by seamonkey
-1是绝对不需要的,输出非终端情况下是默认的。


不知道什么原因, 我总会加个 "-1", 多谢指出
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-24 15:00:02 | 显示全部楼层
再问一个,怎么样才能
ls -1 | xargs -n1 tar xvjf -C otherdir
回复 支持 反对

使用道具 举报

发表于 2007-8-25 11:29:23 | 显示全部楼层
还是换个用法吧
实际上我自己并不常用 -n1 来给tar传值

ls | xargs -i tar xjvf {} -C otherdir
ls | xargs -I '{}' tar xjvf '{}' -C otherdir

请查man的解释:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-25 17:23:46 | 显示全部楼层
huan, 非常感谢!

其实,manpage已经看过了,只是e文不咋地,没有弄明白怎么用。

还是得问一下,字符串“{}”是怎么回事?我看了bash的特殊字符,里边有一个“${}”,解释为参数替换,是否就是这个呀?
回复 支持 反对

使用道具 举报

发表于 2007-8-25 23:40:09 | 显示全部楼层
不是的
-I 后的字串将做为文件名
可改的, 试试:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表