【问题标题】:How to use recursive wildcards in fish shell for dotfiles and -folders?如何在鱼壳中为点文件和文件夹使用递归通配符?
【发布时间】:2014-07-19 15:02:44
【问题描述】:

fish 中的recursive wildcards 非常有用。但是,如果我想将它用于带有前导点的文件或目录,它就不起作用了。

例如:

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

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

我该如何解决这个问题?

【问题讨论】:

    标签: wildcard fish dotfiles


    【解决方案1】:

    这是鱼issue #1568

    目前没有捷径可以做到,长路有:

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

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

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

    这些匹配,按顺序:非点文件、当前目录中的点文件、子目录中的点文件。

    【讨论】:

      【解决方案2】:

      通配符被设计成一个简单的 API,不是为更复杂的搜索而​​设计的。

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

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

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

      ls -a (find -name test.txt)
      

      【讨论】:

      • 好的,但我不想进行复杂的搜索。我只想为点文件/文件夹使用通配符,就像没有前导点的普通文件和文件夹一样。
      猜你喜欢
      • 2017-04-17
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      相关资源
      最近更新 更多