鱼壳:“ shopt -s dotglob”类似物


9

我正在尝试从迁移bashfish

与之fish类似的是shopt什么?我想模仿我的这一行.bashrc

shopt -s dotglob # for mv * see hidden files

可以肯定没有一个。该文档讨论的是不包含点文件,而没有提及任何配置机制。您可能必须{,.}*手动操作。
glenn jackman 2014年

1
请注意,您可能想在stackoverflow.com上询问,其中一些鱼类维护者在那里闲逛。
glenn jackman 2014年

Answers:


8

这是故意的。大多数情况下,用户不想意外匹配ls(无-a)不可见的隐藏文件。通常,隐藏文件是有原因的,而不仅仅是为了诱骗您。另外,如果*要匹配隐藏文件,则匹配非隐藏文件将非常棘手。

但是,与bash不同,shopt -s dotglob不需要匹配隐藏文件。在bash中,这shopt -s dotglob是匹配目录中每个文件而不会意外匹配.或的唯一方法..。但是,鱼壳永远无法匹配...与球形匹配,因此这不是问题(如果您非常需要匹配...出于某些愚蠢的原因,只需明确地说出它们即可)。此外,fish会尽量避免设计时选择,所以它没有dotglob

要匹配目录中的每个文件,您可能需要使用方括号扩展来检测以点开头的文件和不以点开头的文件。{.,}是括号扩展名,它匹配可能存在或可能不存在的点。它后面的星星匹配所有东西。由于fish中的glob无法匹配...,因此以下代码匹配除这两个目录之外的所有内容(如果使用下面的代码,bash可匹配)

cat {.,}*
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.