Linux查看文件大小结果保存方法详解

admin
在Linux中,查看文件大小常用ls -l(显示详细大小信息)、du -sh(查看目录/文件总大小)、stat(显示详细状态),保存结果可通过重定向实现:ls -l > file_sizes.txt覆盖保存,>>追加;或用ls -l | tee file_sizes.txt同时显示并保存,批量处理时,结合find命令(如find . -type f -exec ls -l {} \; > sizes.txt)可递归保存所有文件大小信息,可通过awk提取特定列(如ls -l | awk '{print $5, $9}' > sizes.txt)精简输出,这些方法灵活适用于文件管理、磁盘分析等场景。

在Linux系统中,管理文件和磁盘空间时,经常需要查看文件或目录的大小,并将结果保存下来以便后续分析、记录或报告,本文将详细介绍几种常用的Linux查看文件大小命令,以及如何将查询结果保存到文件中的多种方法,帮助您高效管理文件大小信息。

常用查看文件大小的命令

在保存文件大小结果前,首先需要了解常用的查看命令,这些命令的输出格式和适用场景略有不同,可根据需求选择:

ls命令:查看文件/目录基本信息(含大小)

ls是Linux中最常用的文件列表命令,结合-l(长格式)、-h(人类可读格式)和-s(显示块大小)选项,可快速查看文件大小。
示例

Linux查看文件大小结果保存方法详解

# 列出当前目录下所有文件/目录,显示大小(人类可读格式,如K、M、G)
ls -lh
# 按大小降序排列(需结合sort命令)
ls -lhS

du命令:计算目录/文件占用的磁盘空间

du(disk usage)专门用于显示文件或目录的磁盘使用情况,-s(汇总)、-h(人类可读)、-a(包括文件)选项组合使用更灵活。
示例

# 查看当前目录总大小(人类可读格式)
du -sh
# 查看当前目录下各子目录的大小,并按大小降序排序
du -sh * | sort -hr

find命令:按条件查找文件并显示大小

find可根据文件名、大小、类型等条件查找文件,结合-printf选项可自定义输出格式(含大小)。
示例

# 查找当前目录下大于100MB的文件,并显示文件名和大小
find . -type f -size +100M -printf "%p\t%kKB\n"
# 查找并按大小排序(需结合xargs或sort)
find . -type f -size +10M -printf "%s\t%p\n" | sort -n | head -10

stat命令:显示文件详细状态(含大小)

stat可显示文件的详细元数据,包括大小、权限、时间戳等,适合需要精确字节数的场景。
示例

# 显示当前目录下test.txt的详细信息和大小
stat test.txt

保存文件大小结果的方法

获取文件大小信息后,可通过以下方法将结果保存到文件中,满足不同场景的需求(如临时记录、长期归档、格式化输出等)。

方法1:使用输出重定向(>>>

输出重定向是Linux中最基础的保存方法,将命令的输出结果写入文件,>覆盖原文件,>>追加到文件末尾。

(1)覆盖保存(>

如果希望保存最新结果,且不保留历史数据,使用>覆盖原文件。
示例

# 将ls -lh的结果保存到file_sizes.txt(覆盖原有内容)
ls -lh > file_sizes.txt
# 将du -sh */的结果保存到disk_usage.txt(覆盖)
du -sh */ > disk_usage.txt

(2)追加保存(>>

如果需要多次记录结果(如定期监控文件大小变化),使用>>追加到文件末尾,避免覆盖历史数据。
示例

# 追加当前目录大小到disk_usage_log.txt(保留历史记录)
date +"%Y-%m-%d %H:%M:%S" >> disk_usage_log.txt
du -sh >> disk_usage_log.txt
echo "-------------------" >> disk_usage_log.txt

注意事项:

  • 若目标文件不存在,>>>会自动创建文件;
  • 若目标文件无写入权限,需使用sudo提升权限(如sudo ls -lh > /root/file_sizes.txt);
  • 重定向会覆盖命令的标准输出(stdout),若命令报错(stderr)需单独处理(见方法3)。

方法2:结合tee命令:同时显示并保存结果

tee命令可同时将命令的输出显示在终端(标准输出)并写入文件,适合需要实时查看结果并保存的场景。
语法command | tee [选项] 文件
选项

  • -a:追加模式(相当于>>,否则覆盖);
  • 处理文件名以开头的文件(避免被误认为选项)。

(1)覆盖模式(默认)

# 查看并保存当前目录文件大小到file_sizes.txt(终端显示+文件保存)
ls -lh | tee file_sizes.txt

(2)追加模式(-a

# 追加目录大小到disk_usage_log.txt(终端显示+文件追加)
date +"%Y-%m-%d %H:%M:%S" | tee -a disk_usage_log.txt
du -sh | tee -a disk_usage_log.txt

(3)同时保存到多个文件

# 将结果同时保存到file1.txt和file2.txt
ls -lh | tee file1.txt file2.txt

优势:

  • 实时查看输出,避免“盲目保存”;
  • 支持追加模式,适合长期监控;
  • 可同时保存到多个文件,方便数据分发。

方法3:处理标准错误(stderr)并保存

部分命令可能同时输出标准输出(stdout)和标准错误(stderr,如权限不足、文件不存在提示),若需同时保存两者,可通过以下方式:

(1)合并stdout和stderr保存(2>&1

# 将ls命令的stdout和stderr合并保存到ls_output.txt
ls -lh /root /nonexistent 2>&1 > ls_output.txt
# 或简写为(&>是2>&1>的简写)
ls -lh /root /nonexistent &> ls_output.txt
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码