首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鱼壳:"shopt -s dotglob“模拟

鱼壳:"shopt -s dotglob“模拟
EN

Ask Ubuntu用户
提问于 2013-12-30 13:11:42
回答 1查看 8.3K关注 0票数 11

我正在尝试从bash迁移到fish

fish's对shopt的模拟是什么?我试图模仿我的.bashrc中的这句话:

代码语言:javascript
复制
shopt -s dotglob # for mv * see hidden files
EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2014-05-18 09:44:49

这是故意的。大多数情况下,用户不希望意外地匹配对于ls (没有-a)不可见的隐藏文件。通常,文件隐藏是有原因的,而不仅仅是为了欺骗你。另外,如果*要匹配隐藏文件,那么匹配非隐藏文件就太棘手了。

但是,与bash不同,不需要shopt -s dotglob来匹配隐藏文件。在bash中,shopt -s dotglob是匹配目录中的每个文件而不意外地匹配...的唯一方法。但是,fish shell永远无法将...与globs相匹配,因此这不是一个问题(如果您出于某些愚蠢的原因需要匹配...,只需显式地说明它们)。此外,fish试图通过设计来避免有选择,所以它没有dotglob

要匹配目录中的每个文件,您可能需要使用括号展开来检测以点开始的文件,以及那些不存在的文件。{.,}是与可能存在或不存在的点相匹配的括号扩展。这颗星匹配了所有的东西。由于fish中的globs不能与...匹配,下面的代码匹配除这两个目录之外的所有内容(如果使用下面的代码,这两个目录将不幸匹配)

代码语言:javascript
复制
cat {.,}*
票数 9
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/397651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档