du -sh * 查询不到隐藏的大文件目录
时间: 2023-07-28 07:31:50 浏览: 160
这是因为 du 命令默认情况下不会递归查询隐藏的目录。如果你想要查询隐藏目录的大小,需要使用如下命令:
```
du -sh .[!.]* * | sort -h
```
这个命令会同时查询当前目录下所有文件和目录的大小,包括隐藏的目录。其中,".[!.]*" 表示匹配所有以点开头的文件或目录,但不包括 "." 和 ".."。最后使用 sort 命令按大小排序。
相关问题
du -sh为什么不准
`du -sh` 是 Linux 和 macOS 系统中用于检查目录或文件占用磁盘空间的命令行工具。如果 `du -sh` 命令返回的结果不准确或不允许,可能是因为以下几个原因:
1. 权限问题:如果你没有足够的权限访问某些文件或目录,`du` 可能无法获取正确的信息。
2. 文件系统不支持:不是所有文件系统都支持统计详细的空间信息,例如,一些旧的或特殊的文件系统可能无法提供精确的数据。
3. 包含不可寻址的文件:对于软链接、设备文件或网络路径,`du` 可能无法计算其大小。
4. 实时清理:在系统运行过程中,有些文件可能临时存在并迅速被删除,这时直接用 `du` 计算的结果就不准确了。
5. 存储压缩或增量备份:某些文件可能已经经过压缩存储,而 `du` 默认不会考虑到这种情况。
6. 文件系统的属性设置:对于特定的配置(如在某些文件系统上默认隐藏),`du` 可能会跳过这些文件,导致结果不完整。
为了解决这个问题,你可以尝试增加 `-a` 参数来递归查找子目录,或者使用 `-x` 参数忽略指定类型的文件。如果仍然存在问题,检查当前用户的权限和文件系统的状态可能是解决之道。如果有具体错误提示,那将更有助于确定问题所在。相关问题:
linux中df查看空间占用90,用du查不到
在Linux中,`df`命令用于显示文件系统的磁盘使用情况,它汇总了所有挂载点的信息,包括系统分区、文件系统总大小、已使用的空间以及可用的空间比例。如果你看到`df`报告某个分区的使用率接近90%,但是通过`du`(递归地统计目录下文件的大小)单独检查该分区下的具体内容时无法找到大量占用空间的文件,这可能是由于以下几个原因:
1. **隐藏的大文件**:`du`默认不会跟踪系统文件,如日志文件、索引文件等。如果大型文件系统包含许多这样的系统文件,它们可能会占据大部分类似未被察觉的空间。
2. **目录结构**:大量的小文件分散在很多个目录下,`du`可能因为单次扫描文件数量限制而错过某些细节。你可以尝试加上`-h`选项查看更友好的人类可读格式,或者使用`du -s *`查找总和大的目录。
3. **间接映射**:对于像EXT4或XFS这样的高级文件系统,文件系统会利用间接块和元数据存储空间,这可能导致实际占用空间大于物理文件大小。
4. **交换分区**:有时候,虚拟内存交换空间也被计入`df`的总使用量,即使这部分不是直接由用户文件占用的。
如果你怀疑有误报,可以试试下面的操作来寻找潜在的大文件:
```sh
# 查看当前目录及其子目录的总大小
du -sh .
# 如果需要找出最大的几个文件或目录
du -hsx * | sort -hr | head -n 5
# 或者查找特定类型的文件,例如.log文件
find . -type f -name "*.log" -exec du -sh {} \; | sort -rh
```
阅读全文