linux管道问题 急急!

___py_liang 发布于 2012/06/23 11:41
阅读 480
收藏 2

find /usr/ -name deepinScrot.py |gedit

我在终端输入这条命令,是想找到deepinScrot.py 这个文件并用gedit打开 可是结果却是这样子:

高手说下 管道的下一条命令如果接受上一条的结果作为输入?

 

加载中
0
d
dldn

find /usr/ -name deepinScrot.py -exec gedit {} \;

0
___py_liang
___py_liang

引用来自“swl”的答案

find /usr/ -name deepinScrot.py -exec gedit {} \;

如何 不用这个方法 还有其他方法吗 比如我要 用管道,

0
leetom
leetom
find /usr/ -name deepinScrot.py | cat | gedit
0
deleted
deleted
gedit前加个xargs
0
___py_liang
___py_liang

引用来自“勇者天空”的答案

gedit前加个xargs

如果是想复制这个文件呢 下面的命令也不行,我是想学管道如何接受并处理上一级的输出结果,比如当上一级有多个输出结果 我只想选其第一搜索出来的结果进行处理,望高手指点一二!不胜感激!

find /usr/ -name deepinScrot.py |xargs cp  ~/桌面/

0
___py_liang
___py_liang

引用来自“___py_liang”的答案

引用来自“勇者天空”的答案

gedit前加个xargs

如果是想复制这个文件呢 下面的命令也不行,我是想学管道如何接受并处理上一级的输出结果,比如当上一级有多个输出结果 我只想选其第一搜索出来的结果进行处理,望高手指点一二!不胜感激!

find /usr/ -name deepinScrot.py |xargs cp  ~/桌面/

find /usr/ -name deepinScrot.py |xargs -i -t cp {} ~/桌面/

 

刚刚自己看了下xargs 多谢各位的热心帮助!总算又多学了一点东西!

0
neverno
neverno

一般做法:

命令 $(find /usr/ -name deepinScrot.py)

文艺做法:

find /usr/ -name deepinScrot.py -exec 命令 {} \;

“2B”做法:(xargs并非所有命令都支持,局限性很大。)

find /usr/ -name deepinScrot.py | xargs 命令

___py_liang
___py_liang
长见识了 呵呵 ! 兄台在哪里高就,想换工作否? 我们公司的系统组正好缺人啊,急需兄台这样子的人才!
0
deleted
deleted

引用来自“neverno”的答案

一般做法:

命令 $(find /usr/ -name deepinScrot.py)

文艺做法:

find /usr/ -name deepinScrot.py -exec 命令 {} \;

“2B”做法:(xargs并非所有命令都支持,局限性很大。)

find /usr/ -name deepinScrot.py | xargs 命令

正好把三种方法说反了

第一种是典型的2B方法, 因为地球人都知道,命令行长度是有限制的,尤其是这种根本没必要生成临时变量的地方,找到的文件一多,就直接爆酱了

第二种是文艺做法, 这种做法找到多少文件, 就执行多少次命令,比起第三种性能损失很大。 但是,这也是普通青年做法, 因为要查找符合特性的不同文件执行诸如cp {} b/{}这种命令,1和3是做不了的.

第三种是普通做法, 本质上和第一种是一样的, 但是xargs会保证不出错,  因为find和xargs都是属于GNU findutils这同一个包的。 所以,除非自己LFS然后阉割,不然根本找不到有find没xargs的发行版

itxx
itxx
我以及周围的几个青年都是2b青年。
itxx
itxx
我觉得第三种才是2b做法,貌似现在的2b青年都喜欢用这种做法。
neverno
neverno
感谢指出,自从摸过几个生产环境的连xargs都不支持,对xargs就有阴影了。第一个会爆浆还真是学到了,经常贪方便``或$()。见识还是太少了~
___py_liang
___py_liang
又长见识了 呵呵 ! 兄台在哪里高就,想换工作否? 我们公司的系统组正好缺人啊,急需兄台这样子的人才!
返回顶部
顶部