如何在鱼壳中使用递归通配符作为dotfiles和-folders?

时间:2014-07-19 15:02:44

标签: wildcard fish dotfiles

鱼中的recursive wildcards非常有用。但是如果我想将它用于带有前导点的文件或目录,它就无法工作。

例如:

folder
├subfolder
│ └test.txt 
├.subfolder
│ └test.txt
├test.txt
└.test.txt

如果我现在运行ls -a **.txt,则输出仅显示test.txt个文件,这些文件不在带有前导点的文件夹中,或者不是单独的dotfiles文件。 (输出:subfolder/test.txt test.txt

我该如何解决?

2 个答案:

答案 0 :(得分:3)

这是鱼issue #1568

目前没有简短的方法可以做到这一点,很长的路要走:

  • 使用外部程序(如查找)

  • 像这样做一个更复杂的glob:

    ls -a ** .txt。* .txt ** /。*。txt

这些匹配顺序为:非dotfiles,当前目录中的dotfiles,子目录中的dotfiles。

答案 1 :(得分:0)

通配符旨在成为一种不适用于更复杂搜索的简单API。

对于复杂搜索,您可以使用find shell命令。

find -name test.txt -print0 | xargs -0 ls -a

或者,如果您不关心文件名中的新行。

ls -a (find -name test.txt)