如何将*与目录中的隐藏文件进行匹配

维丹

如何匹配给定目录内的隐藏文件

例如

如果我给出以下命令,则不是给出隐藏文件的结果,

 du -b maybehere*/*

如何使用一个命令而不是使用一个简单的命令来实现

du -b maybehere*/.* maybehere*/*

因为我需要在这里键入两次。

吉米吉

利用括号扩展:

du -b maybehere*/{*,.[^.],.??*}

或者

du -b maybehere*/{,.[^.],..?}*

其背后的逻辑可能并不明显,所以在这里进行解释:

  • * 匹配所有非隐藏文件
  • .[^.]匹配名称以单点开头而不是非点的文件;第一种形式只有2个字符的文件名。
  • .??* 匹配至少3个字符长的隐藏文件
  • ..?* 像上面一样,但是第二个字符必须是一个点

整个要点是排除到当前目录和父目录(...)的硬链接,但要包括所有普通文件,以使每个普通文件仅被计数一次!

例如最简单的就是写

du -b maybehere*/{.,}*

这意味着,该列表包含一个点.和“无”(没有什么是之间,和关闭}),因此所有隐藏文件(从一个点开始),所有非隐藏文件(从“一无所有”开始)将匹配。问题在于这也将与.匹配..,并且这很可能不是您想要的,因此我们必须以某种方式将其排除。


关于支架扩张的最终决定。

括号扩展是一种机制,您可以通过写入更少的字符来在命令行中包含更多文件/字符串/任何内容。语法为{word1,word2,...},即它是一个以逗号分隔的字符串的列表,它们以开头{和结尾}bash手册给出了一个非常基本的,同时又非常普遍的用法示例:

$ echo a{b,c,d}e
abe ace ade

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ls模式匹配中包含隐藏文件?

在ubuntu中从根目录隐藏文件

如何对隐藏文件进行遍历?

ubuntu文件目录中的隐藏文件显示在GUI中

如何通过*将所有文件(包括隐藏文件)移动到父目录中

如何在 AmCharts 导出的 PDF 文件中隐藏文件目录?

如何遍历包含文件和隐藏文件的目录

如何在Atom中隐藏文件

从Racket的目录列表中删除隐藏文件

仅排除特定目录中的隐藏文件

如何从ls -a隐藏文件/目录,同时仍然可以在兼容POSIX的系统中访问这些文件/目录?

如何将HTML元素添加到与文本混合的隐藏文件中?

如何将与数组中的ID不匹配的对象与Java中数组中的不同对象进行排序?

如何在NSDocumentsDirectory中隐藏文件夹并禁止通过iTunes和iCloud进行备份

如何在单个调用中同时获取隐藏文件和非隐藏文件

如何删除目录中除最新的 10 个隐藏文件夹之外的所有文件夹

如何将所有文件(包括隐藏文件)从一个目录移动到另一个目录?

如何找到隐藏文件?

Linux中的隐藏文件

从查找结果中排除隐藏目录中的文件,但不排除隐藏文件(在非隐藏目录下)

为什么bash会将。*转换为当前目录中的隐藏文件列表,以及如何防止它执行此操作?

R CMD检查错误:如何清除Windows上devel R包中的隐藏文件和目录?

遍历linux / android中目录中的所有文件(包括以'。'开头的文件-隐藏文件)

如何使用cp复制以包括隐藏文件和隐藏目录及其内容?

如何仅显示隐藏目录,然后分别查找隐藏文件

如何在Windows / Mac / Linux中创建隐藏文件?

如何在Linux中chmod和chown隐藏文件?

如何在终端中仅显示隐藏文件?

如何在Visual Studio for Mac中显示隐藏文件?