免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 25824 | 回复: 12

xargs cp 的问题 [复制链接]

论坛徽章:
0
发表于 2007-11-28 23:01 |显示全部楼层
find . -name "*" |xargs cp ????

这里 xargs cp 怎么区分cp源 和 cp目的
例如:想把 查询到的文件 都copy到/home/users/中去
        find . -name "*" | xargs cp /home/users/
cp命令在这里就变成:cp /home/users/ Find_file

默认从管道传来的值是放在最后的 这样的话原本想做cp源文件的值和目的目录的参数就颠倒了
有办法解决一下吗?
xargs 没有想-exec 那种 {} 的变量吗?

论坛徽章:
0
发表于 2007-11-28 23:08 |显示全部楼层
find . -name "*" | xargs -i cp {}  /home/users/

论坛徽章:
0
发表于 2007-11-28 23:13 |显示全部楼层
原帖由 davistar 于 2007-11-28 23:08 发表
find . -name "*" | xargs -i cp {}  /home/users/


-i 和{} 什么关系?

论坛徽章:
0
发表于 2007-11-28 23:22 |显示全部楼层
暧昧关系


  1. -i 表示 find 传递给xargs的结果 由{}来代替
复制代码

论坛徽章:
0
发表于 2007-11-28 23:35 |显示全部楼层
-I replace-str
              Replace  occurrences  of  replace-str  in the initial-arguments with names read from standard input.  Also, unquoted blanks do not terminate
              input items; instead the separator is the newline character.  Implies -x and -L 1.

       --replace[=replace-str], -i[replace-str]
              This option is a synonym for -Ireplace-str if replace-str is specified, and for -I{} otherwise.  This option is deprecated; use -I  instead.

man了下 还是 看的不怎么懂
i 和I 都可以部?replace-str
到时是个啥东西

论坛徽章:
0
发表于 2007-11-28 23:53 |显示全部楼层
原帖由 davistar 于 2007-11-28 23:22 发表
暧昧关系


-i 表示 find 传递给xargs的结果 由{}来代替


谢谢XD 已经搞定

-I 必须指定替换字符 -i 是否指定替换字符-可选
举例:
find . | xargs -I {} cp {} $D_PATH

find . | xargs -i cp {} $D_PATH

两者效果相同

[ 本帖最后由 Seker 于 2007-11-29 00:01 编辑 ]

论坛徽章:
0
发表于 2007-11-29 00:17 |显示全部楼层
呵呵,ABS里面有讲的。。。

24 PROCESS_NAME="$1"
25 ps ax | grep "$PROCESS_NAME" | awk '{print $1}' | xargs -i kill {} 2&>/dev/null
26 #                                                       ^^      ^^
27
28 # -----------------------------------------------------------
29 # 注意:
30 # -i 参数是xargs命令的"替换字符串"选项.
31 # 大括号对的地方就是替换点.
        xarg的man页中表示废弃-i参数。建议使用-I{}来代替。cp后面的{}会被替换成xargs的输入

[ 本帖最后由 aitilang 于 2007-11-29 00:20 编辑 ]

论坛徽章:
0
发表于 2007-11-29 10:30 |显示全部楼层
原帖由 Seker 于 2007-11-28 23:53 发表


谢谢XD 已经搞定

-I 必须指定替换字符 -i 是否指定替换字符-可选
举例:
find . | xargs -I {} cp {} $D_PATH

find . | xargs -i cp {} $D_PATH

两者效果相同

-I 后面是个表示了??
可以换吗?比如 -I  []  后面 对应[]???

论坛徽章:
0
发表于 2007-11-29 10:30 |显示全部楼层

回复 #8 nuclearxin 的帖子

自己试一下不就知道了

论坛徽章:
0
发表于 2007-11-29 11:33 |显示全部楼层
[quote]原帖由 [i]davistar[/i] 于 2007-11-29 10:30 发表 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=7653539&ptid=1022095][img]http://bbs.chinaunix.net/images/common/back.gif[/img][/url]
自己试一下不就知道了 [/quote]
o yeah
成功
nightfire@burning:~/wokao/wokao$ ls
10wokao  1wokao  2wokao  3wokao  4wokao  5wokao  6wokao  7wokao  8wokao  9wokao
nightfire@burning:~/wokao/wokao$ ls |xargs -I [] mv [] [].back
nightfire@burning:~/wokao/wokao$ ls
10wokao.back  1wokao.back  2wokao.back  3wokao.back  4wokao.back  5wokao.back  6wokao.back  7wokao.back  8wokao.back  9wokao.back
nightfire@burning:~/wokao/wokao$ ls
10wokao.back  1wokao.back  2wokao.back  3wokao.back  4wokao.back  5wokao.back  6wokao.back  7wokao.back  8wokao.back  9wokao.back
nightfire@burning:~/wokao/wokao$ ls |xargs -I @  mv @ @.back
nightfire@burning:~/wokao/wokao$ ls
10wokao.back.back  2wokao.back.back  4wokao.back.back  6wokao.back.back  8wokao.back.back
1wokao.back.back   3wokao.back.back  5wokao.back.back  7wokao.back.back  9wokao.back.back
nightfire@burning:~/wokao/wokao$

[[i] 本帖最后由 nuclearxin 于 2007-11-29 11:41 编辑 [/i]]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP