分页: 1 / 2
关于管道传递结果的疑问?
发表于 : 2009-05-08 0:03
由 pshvvvv
1.如果将管道的结果传递给多参数的命令呢??
打个比方:我用grep搜索 然后将搜索到的结果全部拷贝到一个地方,,也就是说我如何将搜索到的结果传递给COPY的源呢??查了资料 没查到 请知道的指点下,谢谢!!!
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 0:35
由 darasion
搜索用 find 来做阿。
比如我要从/etc里边查找*.conf文件,全部复制到~/Documents/目录,就可以这样:
代码: 全选
find /etc -type f -name *.conf -exec cp {} ~/Documents/ \;
注意后边的
\; 以及
\;前边的空格不可省略。[/size]
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 0:45
由 pshvvvv
-exec,可以执行命令。。我怎么没想到
恩,谢谢拉
对了,可以直接用{}来代替吗?还是只能用find,不能用其他过滤器?
恩,谢谢了
,我去实验下
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 0:52
由 jioyo源
pshvvvv 写了:-exec,可以执行命令。。我怎么没想到
恩,谢谢拉
对了,可以直接用{}来代替吗?还是只能用find,不能用其他过滤器?
恩,谢谢了
,我去实验下
find下{}表示当然所找到的文件名……
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 6:37
由 aerofox
也可以用 cpio:
代码: 全选
find . -name '*.conf' | cpio -pd target_directory
grep some_pattern file | cpio -pd target_directory
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 11:19
由 pshvvvv
这个find命令 为什么我改为其他类型 必须加单引号‘ 不加不行 双引号“也不行???
可是直接搜索*.conf 什么不加就能搜出来,奇怪啊
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 12:21
由 bones7456
xargs也可以参考下
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 19:46
由 pshvvvv
我第二个问题,怎么没人回答
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 20:47
由 eexpress
整理下吧。都不知道你什么问题了。题目都转向了。
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 23:04
由 pshvvvv
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 23:17
由 aerofox
pshvvvv 写了:这个find命令 为什么我改为其他类型 必须加单引号‘ 不加不行 双引号“也不行???
可是直接搜索*.conf 什么不加就能搜出来,奇怪啊
应该是单引号和双引号都可以,除非你想搜索带 $ 符号的文件名,它应该用单引号。
至于 *.conf 可以不加引号,是因为你在执行 find 命令时,当前目录下没有以 .conf 结尾的文件名,这样它就原样传给了 find。
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 23:17
由 aerofox
pshvvvv 写了:我第二个问题,怎么没人回答
第二个问题没看懂你的意图。
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-08 23:36
由 jioyo源
代码: 全选
2.如何我搜索文件,我如果将我搜索到的文件的文件名取出来呢?比如我把搜索到的名字重定向到一个文件夹
你是想把文件名重定向到一个文件,还是想给文件定向到文件夹……
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-09 10:04
由 HuaChong
不加单引号也是可以的,只不过*要转义一下不要被bash认出来就可以了,比如楼上的回答也可以这样
代码: 全选
find -name \*.conf#其他略
Re: 关于管道传递结果的疑问?
发表于 : 2009-05-09 10:18
由 BigSnake.NET
xargs
eg.
find -print0 | xargs -0 stat