[英]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.