[英]how to pipe output from find to pdf viewer
你好Bash超级英雄,
我正在尝试创建一个简单的bash函数,该函数将从find到pdf查看器的输出通过管道传输,类似但仅限于evince 。
function findpapers {
find ~/papers/ -name *$1* | evince
}
上面的功能打开查看器,但不显示任何所需的文件/路径。 最终,我想显示find所输出的所有pdf文件。 一个简单的查找命令,例如:
$ find /home/alex/papers/ -name *erebus*
创建如下输出:
/home/alex/papers/2000/rowe/seismic_and_acoustic_observations_at_mount_erebus_volcano_ross_island_antarctica.pdf
/home/alex/papers/2008/Jones/infrasonic_tracking_of_large_bubble_bursts_and_ash_venting_at_erebus_volcano_antarctica.pdf
然后的想法是在查看器中显示这两个pdf文件。
有什么想法或建议吗? 如果有帮助,我正在使用Linux Mint。 预先感谢堆积!
您需要在命令行的文件名列表中,而不是在其标准输入中。
采用
evince $(find /home/alex/papers/ -name *erebus*)
要么
find /home/alex/papers/ -name *erebus* | xargs evince
在linux上(或使用gnu版本的find和xargs的任何操作系统)上,如果文件名可能包含空格,则最好使用
find /home/alex/papers/ -name *erebus* -print0 | xargs -0 evince
您还应该能够使用
find /home/alex/papers/ -iname '*erebus*' -exec evince '{}' +
如果您使用的是bash
4或更高版本,则不需要find
:
shopt -s globstar
evince /home/alex/papers/**/*erebus*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.