我知道我可以打开在目录中找到的多个文件,如下所示:
find -name *.foo -xargs <command> {} \;
这是可行的,但是当尝试同时在 gedit 中打开一堆文本文件时,它会连续打开它们(当一个文件关闭时,会打开下一个文件)。
我想同时打开所有这些文件。我怎样才能实现这个目标?
答案1
要使用 一次对多个文件执行操作find
,请使用+
而不是\;
:
find . -name '*.foo' -exec gedit {} +
使用 zsh 或 bash ≥4(如果您放入shopt -s globstar
)~/.bashrc
,您可以使用**/
递归到子目录:
gedit **/*.foo
zsh还有很多全局限定符它可以取代 的大部分用途find
。
答案2
在 Mac OS X bash 上,您可以运行如下命令:
for file in $(find . -name "*.py"); do open -a SublimeText $file; done.
一个缺点是它在 Sublime 的新窗口中打开,而不是使用新选项卡。
答案3
我认为在这种情况下你可以使用
find ./ -name \*.foo | xargs gedit