如何打开find命令输出的文件列表?

时间:2015-06-01 20:27:54

标签: macos bash terminal

我有一个工作查找查询find . -type f | gshuf -n2,它返回两行文件。我知道我可以通过open -a TextEdit ./text.txt在文本编辑中打开文件,但是如何将这些文件放在一起以便Textedit在找到而不是手动复制和粘贴后打开它们?

我尝试了像

这样的变体
open -a TextEdit find . -type f | gshuf -n2
open -a TextEdit (find . -type f | gshuf -n2)

这可以在一个命令中完成,或者如果不是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

你第二次尝试就接近了。要将命令输出替换为命令行,请使用$( command )

open -a TextEdit $(find . -type f | gshuf -n2)

但是,如果任何文件名的名称中都有空格,这将无法正常工作,因为每个单词都将被视为单独的文件名。这会更好:

find . -type f | gshuf -n2 | while read filename; do
    open -a TextEdit "$filename"
done

双引号可防止名称被拆分。