鱼中的recursive wildcards非常有用。但是如果我想将它用于带有前导点的文件或目录,它就无法工作。
例如:
folder
├subfolder
│ └test.txt
├.subfolder
│ └test.txt
├test.txt
└.test.txt
如果我现在运行ls -a **.txt
,则输出仅显示test.txt
个文件,这些文件不在带有前导点的文件夹中,或者不是单独的dotfiles文件。 (输出:subfolder/test.txt test.txt
)
我该如何解决?
答案 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)