sh/bash/dash/ksh/zsh等Shell脚本
-
pshvvvv
- 帖子: 308
- 注册时间: 2009-02-23 21:58
-
联系:
#1
帖子
由 pshvvvv » 2009-05-08 0:03
1.如果将管道的结果传递给多参数的命令呢??
打个比方:我用grep搜索 然后将搜索到的结果全部拷贝到一个地方,,也就是说我如何将搜索到的结果传递给COPY的源呢??查了资料 没查到 请知道的指点下,谢谢!!!

上次由
pshvvvv 在 2009-06-11 14:56,总共编辑 1 次。
选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
-
darasion
- 帖子: 1153
- 注册时间: 2007-12-05 12:25
#2
帖子
由 darasion » 2009-05-08 0:35
搜索用 find 来做阿。
比如我要从/etc里边查找*.conf文件,全部复制到~/Documents/目录,就可以这样:
代码: 全选
find /etc -type f -name *.conf -exec cp {} ~/Documents/ \;
注意后边的
\; 以及
\;前边的空格不可省略。[/size]
-
pshvvvv
- 帖子: 308
- 注册时间: 2009-02-23 21:58
-
联系:
#3
帖子
由 pshvvvv » 2009-05-08 0:45
-exec,可以执行命令。。我怎么没想到

恩,谢谢拉
对了,可以直接用{}来代替吗?还是只能用find,不能用其他过滤器?
恩,谢谢了

,我去实验下
选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
-
jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
#4
帖子
由 jioyo源 » 2009-05-08 0:52
pshvvvv 写了:-exec,可以执行命令。。我怎么没想到

恩,谢谢拉
对了,可以直接用{}来代替吗?还是只能用find,不能用其他过滤器?
恩,谢谢了

,我去实验下
find下{}表示当然所找到的文件名……
-
aerofox
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
#5
帖子
由 aerofox » 2009-05-08 6:37
也可以用 cpio:
代码: 全选
find . -name '*.conf' | cpio -pd target_directory
grep some_pattern file | cpio -pd target_directory
-
pshvvvv
- 帖子: 308
- 注册时间: 2009-02-23 21:58
-
联系:
#6
帖子
由 pshvvvv » 2009-05-08 11:19
这个find命令 为什么我改为其他类型 必须加单引号‘ 不加不行 双引号“也不行???
可是直接搜索*.conf 什么不加就能搜出来,奇怪啊
选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
-
pshvvvv
- 帖子: 308
- 注册时间: 2009-02-23 21:58
-
联系:
#8
帖子
由 pshvvvv » 2009-05-08 19:46
我第二个问题,怎么没人回答

选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#9
帖子
由 eexpress » 2009-05-08 20:47
整理下吧。都不知道你什么问题了。题目都转向了。
● 鸣学
-
pshvvvv
- 帖子: 308
- 注册时间: 2009-02-23 21:58
-
联系:
#10
帖子
由 pshvvvv » 2009-05-08 23:04
选择之前,选择最重要;选择之后,坚持最重要!!!
只有偏执狂才能成功!!!
-
aerofox
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
#11
帖子
由 aerofox » 2009-05-08 23:17
pshvvvv 写了:这个find命令 为什么我改为其他类型 必须加单引号‘ 不加不行 双引号“也不行???
可是直接搜索*.conf 什么不加就能搜出来,奇怪啊
应该是单引号和双引号都可以,除非你想搜索带 $ 符号的文件名,它应该用单引号。
至于 *.conf 可以不加引号,是因为你在执行 find 命令时,当前目录下没有以 .conf 结尾的文件名,这样它就原样传给了 find。
-
aerofox
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
#12
帖子
由 aerofox » 2009-05-08 23:17
pshvvvv 写了:我第二个问题,怎么没人回答

第二个问题没看懂你的意图。
-
jioyo源
- 帖子: 3476
- 注册时间: 2008-10-08 13:48
#13
帖子
由 jioyo源 » 2009-05-08 23:36
代码: 全选
2.如何我搜索文件,我如果将我搜索到的文件的文件名取出来呢?比如我把搜索到的名字重定向到一个文件夹
你是想把文件名重定向到一个文件,还是想给文件定向到文件夹……
-
HuaChong
- 帖子: 493
- 注册时间: 2006-09-12 17:10
#14
帖子
由 HuaChong » 2009-05-09 10:04
不加单引号也是可以的,只不过*要转义一下不要被bash认出来就可以了,比如楼上的回答也可以这样
代码: 全选
find -name \*.conf#其他略
-
BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
-
联系:
#15
帖子
由 BigSnake.NET » 2009-05-09 10:18
xargs
eg.
find -print0 | xargs -0 stat
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。