特殊字符可以使用反斜杠字符\来区分。 但是,我想把全部时间视为普通字符来操作隐藏文件夹。 例如:
ls -lh .
它将列出当前目录。 但是,我想列出所有隐藏的文件夹。 我希望它与du -h一起使用,所以我知道隐藏的文件夹消耗的磁盘空间。
以名字开头的文件和目录. (a)在默认情况下忽略它们,(b)通配符扩展排除它们。 在这两种情况下,如果明确引用它们,则可以看到点文件。 *扩展到所有非点文件; .*扩展到所有点文件。
(其他工具和命令也可能将它们视为隐藏;例如,像Nautilus这样的GUI文件管理器通常不会默认显示点文件,但通常有一个选项可以显示它们。)
ls -a覆盖了对名字开头的文件的特殊处理. 。 ls -A列出“隐藏”文件和文件夹,但不包括. (这个目录)和.. (父目录); 某些版本的ls可能不支持-A 。
据我所知, du命令不会将点文件视为隐藏文件。 du -h应该显示从当前目录开始的整个目录树。 (尝试在一个小的目录树,以确保你的行为这样。)
编辑:
我已经证实,至少du的GNU coreutils版本不会将名称以开头的文件或目录对待. 特别; 没有什么是隐藏的
例如,这个脚本:
#!/bin/sh mkdir -p .dot/.dot .dot/nodot nodot/.dot nodot/nodot du -h
在我的系统上产生这个输出(具体数字取决于文件系统的性质,与当前的讨论无关):
4.0K ./.dot/.dot 4.0K ./.dot/nodot 12K ./.dot 4.0K ./nodot/.dot 4.0K ./nodot/nodot 12K ./nodot 32K .
这是否符合您的要求? 如果没有,你能更清楚地解释你正在寻找什么? 你想列出所有的目录,他们的名字是否以开头. 或不? 你想只列出“隐藏”的目录? 你想用上面的脚本创建的目录结构是什么输出?
这个问题错了,但它很简单:
ls -lhd .*
那么ls -lh .* ? (这可能会回答你的问题)