使用bash terminal命令打开目录和子目录中的所有文件?

时间:2015-03-23 03:35:02

标签: bash terminal zsh

我有一个别名,我可以open file1.type file2.typeopen *.type

我想要的是能够在我当前位置的所有子目录上使用它。因此,如果我在父目录中并且有两个子目录,则运行该命令将与运行open file1.type file2.type child1/file1.type child2/file1.type

相同

所以像open -? *.type这样的东西就是我正在寻找的东西。

2 个答案:

答案 0 :(得分:6)

如果在设置globstar选项的情况下运行zsh或bash 4.x,**将递归匹配所有目录。

#!/bin/zsh
open **/*.type

...

#!/bin/bash
shopt -s globstar
open **/*.type

答案 1 :(得分:2)

find适用于此类功能。像这样:

find . -type f -name \*.type -exec open {} \;

或者在这种情况下,由于open是别名,因此您必须将shell作为命令运行:

find . -type f -name \*.type -exec bash -c open {} \;