rclone文件大小查看命令
rclone 文件大小查看命令详解
一、命令速查表
| 命令 | 功能 | 默认递归 | 人类可读 | 适用场景 |
|---|---|---|---|---|
rclone ls | 列出文件大小和路径 | ✅ 是 | ❌ 需转换 | 快速查看文件列表 |
rclone lsl | 列出修改时间、大小和路径 | ✅ 是 | ❌ 需转换 | 需要时间信息的详细列表 |
rclone size | 统计总大小和文件数量 | ✅ 是 | ✅ 是 | 查看文件夹/远程的总存储量 |
rclone ncdu | 交互式磁盘占用分析 | ✅ 是 | ✅ 是 | 找大文件、分析存储分布 |
rclone lsjson | JSON 格式输出 | ❌ 否 | ❌ 需转换 | 脚本处理、程序调用 |
rclone lsf | 自定义格式输出 | ❌ 否 | ❌ 需转换 | 灵活格式化、脚本处理 |
rclone tree | 树形结构显示 | ✅ 是 | ❌ 需转换 | 可视化目录结构 |
二、常用命令详解
2.1 rclone ls — 列出文件大小和路径
最基本的列表命令,显示文件大小(字节)和路径。
rclone ls zgdrive:/backup/输出示例:
60295 backup.tar.xz
90613 config.yml
94467 data.enc常用参数:
# 限制递归深度
rclone ls zgdrive:/backup/ --max-depth 2
# 只显示大于10M的文件
rclone ls zgdrive:/backup/ --min-size 10M
# 只显示小于1M的文件
rclone ls zgdrive:/backup/ --max-size 1M
# 只显示目录
rclone ls zgdrive:/backup/ --dirs-only2.2 rclone lsl — 列出时间、大小和路径
比 ls 多了修改时间信息。
rclone lsl zgdrive:/backup/输出示例:
60295 2026-01-20 10:30:15.123456789 backup.tar.xz
90613 2026-01-19 15:22:08.987654321 config.yml2.3 rclone size — 统计总大小和文件数量 ⭐推荐
最常用的统计命令,直接告诉你总共有多大、有多少个文件,且自动使用人类可读单位。
rclone size zgdrive:/backup/输出示例:
Total objects: 156
Total size: 2.345 GiB (2517245952 Byte)JSON 格式输出(便于脚本解析):
rclone size zgdrive:/backup/ --json输出示例:
{
"count": 156,
"bytes": 2517245952
}2.4 rclone ncdu — 交互式磁盘占用分析 ⭐推荐
当你想知道"到底什么占了这么多空间"时,这是最强大的工具。界面自动使用人类可读单位。
rclone ncdu zgdrive:/交互界面操作:
| 按键 | 功能 |
|---|---|
↑/↓ | 上下移动选择 |
Enter | 进入目录 |
← | 返回上级目录 |
s | 按大小排序(默认) |
c | 按文件数量排序 |
d | 删除选中的文件/目录 |
q | 退出 |
2.5 rclone lsjson — JSON 格式输出(脚本处理)
输出完整的文件元数据,便于程序解析。
rclone lsjson zgdrive:/backup/输出示例:
[
{
"Path": "backup.tar.xz",
"Name": "backup.tar.xz",
"Size": 60295,
"MimeType": "application/x-xz",
"ModTime": "2026-01-20T10:30:15.123456789Z",
"IsDir": false
}
]常用参数:
# 递归列出
rclone lsjson -R zgdrive:/backup/
# 包含哈希值
rclone lsjson --hash zgdrive:/backup/
# 只显示文件
rclone lsjson --files-only zgdrive:/backup/
# 只显示目录
rclone lsjson --dirs-only zgdrive:/backup/2.6 rclone lsf — 自定义格式输出
输出格式高度可定制,适合脚本处理。
# 格式:大小+路径(用分号分隔)
rclone lsf --format "sp" zgdrive:/backup/输出示例:
60295;backup.tar.xz
90613;config.yml格式字符说明:
| 字符 | 含义 |
|---|---|
p | 路径 |
s | 文件大小(字节) |
t | 修改时间 |
h | 哈希值 |
i | 对象ID |
m | MIME类型 |
更多示例:
# CSV格式
rclone lsf --csv --format "p,s,t" zgdrive:/backup/
# 只显示目录
rclone lsf --dirs-only zgdrive:/backup/
# 递归列出
rclone lsf -R zgdrive:/backup/2.7 rclone tree — 树形结构显示
以树形图展示目录结构。
rclone tree zgdrive:/backup/输出示例:
/
├── backup.tar.xz
├── config.yml
└── data
├── file1.txt
└── file2.txt带文件大小(仍为字节,不够友好):
rclone tree -s zgdrive:/backup/输出示例:
/
├── [ 60295] backup.tar.xz
├── [ 90613] config.yml
└── data
├── [ 1024] file1.txt
└── [ 2048] file2.txt三、人类可读格式转换
3.1 方法一:rclone size 和 rclone ncdu(自动支持)
# 自动使用最合适的单位
rclone size zgdrive:/backup/
# 交互式界面自动显示人类可读
rclone ncdu zgdrive:/3.2 方法二:使用 numfmt 转换
# 安装 numfmt(GNU coreutils 自带,通常已安装)
# 如未安装:sudo apt install coreutils
# 转换单列
rclone ls zgdrive:/backup/ | numfmt --to=iec --field=1
# 保持列对齐
rclone ls zgdrive:/backup/ | numfmt --to=iec --field=1 | column -tnumfmt 参数说明:
| 参数 | 说明 | 示例输出 |
|---|---|---|
--to=iec | IEC 单位(1024进制) | 59K、2.3M、1.2G |
--to=si | SI 单位(1000进制) | 60kB、2.3MB、1.2GB |
--field=1 | 转换第1列 | — |
--format=%.2f | 保留2位小数 | 59.23K |
3.3 方法三:使用 awk 自定义脚本
rclone ls zgdrive:/backup/ | awk '{
size = $1
if (size >= 1073741824)
printf "%.2f GiB\t%s\n", size/1073741824, $2
else if (size >= 1048576)
printf "%.2f MiB\t%s\n", size/1048576, $2
else if (size >= 1024)
printf "%.2f KiB\t%s\n", size/1024, $2
else
printf "%d B\t%s\n", size, $2
}'3.4 方法四:使用 jq 处理 JSON
# 列出文件并转换大小
rclone lsjson zgdrive:/backup/ | jq '.[] | {name: .Name, size: (.Size | tonumber | tostring + " bytes")}'
# 计算总大小(人类可读)
rclone size zgdrive:/backup/ --json | jq '.bytes' | numfmt --to=iec四、实战场景
场景1:查看单个文件大小
# 方法1:使用 ls 并过滤
rclone ls zgdrive:/backup/backup.tar.xz
# 方法2:使用 lsl(带时间信息)
rclone lsl zgdrive:/backup/backup.tar.xz
# 方法3:人类可读格式
rclone ls zgdrive:/backup/backup.tar.xz | numfmt --to=iec --field=1场景2:查看整个远程的总存储量
# 最简单直接
rclone size zgdrive:/
# JSON格式(脚本用)
rclone size zgdrive:/ --json场景3:找出最大的10个文件
# 方法1:使用 ls + sort
rclone ls zgdrive:/ --max-depth 5 | sort -rn -k1 | head -10
# 方法2:人类可读输出
rclone ls zgdrive:/ --max-depth 5 | sort -rn -k1 | head -10 | numfmt --to=iec --field=1 | column -t场景4:查看特定文件夹大小
rclone size zgdrive:/backup/2026/场景5:交互式分析存储空间(找大文件)
rclone ncdu zgdrive:/场景6:列出所有目录及其大小(脚本用)
rclone lsf -R --dirs-only --format "sp" zgdrive:/场景7:按大小筛选文件
# 大于 100MB 的文件
rclone ls zgdrive:/ --min-size 100M
# 小于 10MB 的文件
rclone ls zgdrive:/ --max-size 10M
# 大小在 1MB 到 10MB 之间
rclone ls zgdrive:/ --min-size 1M --max-size 10M五、实用脚本
脚本1:列出所有文件(人类可读大小)
#!/bin/bash
# 用法:./list_with_size.sh zgdrive:/backup/
REMOTE="${1:-zgdrive:/}"
rclone ls "$REMOTE" | while read size path; do
human_size=$(numfmt --to=iec $size 2>/dev/null || echo "$size B")
printf "%-8s %s\n" "$human_size" "$path"
done脚本2:找出最大的N个文件
#!/bin/bash
# 用法:./find_large.sh zgdrive:/backup/ 20
REMOTE="${1:-zgdrive:/}"
TOP_N="${2:-10}"
rclone ls "$REMOTE" | sort -rn -k1 | head -"$TOP_N" | while read size path; do
human_size=$(numfmt --to=iec $size)
printf "%-8s %s\n" "$human_size" "$path"
done脚本3:目录大小汇总(支持多级)
#!/bin/bash
# 用法:./dir_summary.sh zgdrive:/backup/
REMOTE="${1:-zgdrive:/}"
for dir in $(rclone lsf --dirs-only "$REMOTE"); do
size=$(rclone size "${REMOTE}${dir}" --json | jq '.bytes')
human_size=$(numfmt --to=iec $size)
printf "%-20s %s\n" "${dir%/}" "$human_size"
done | sort -rn -k2六、注意事项
| 注意点 | 说明 |
|---|---|
| API 限流 | 大型远程(特别是 Google Drive)有 API 请求限制,扫描大量文件时可能需要较长时间 |
| 特殊后端 | Google Photos、Google Docs 等不提供文件大小,rclone 会将其计为空文件并输出警告 |
| 递归深度 | ls、lsl、size、ncdu 默认递归;lsf、lsjson 默认不递归,需加 -R |
| 人类可读 | 只有 size 和 ncdu 默认支持人类可读,其他命令需用 numfmt 或脚本转换 |
七、快速参考卡片
# 快速查看总大小(最常用)
rclone size remote:path
# 交互式分析(找大文件)
rclone ncdu remote:path
# 列出文件(字节)
rclone ls remote:path
# 列出文件(人类可读)
rclone ls remote:path | numfmt --to=iec --field=1 | column -t
# 树形结构
rclone tree -s remote:path
# JSON格式(脚本用)
rclone lsjson remote:path
# 自定义格式(脚本用)
rclone lsf --format "sp" remote:path
# 按大小筛选
rclone ls remote:path --min-size 100M --max-size 1G八、单位换算参考
| 单位 | 字节数 | numfmt --to=iec | numfmt --to=si |
|---|---|---|---|
| 1 KB / 1 KiB | 1024 | 1.0K | 1.0kB |
| 1 MB / 1 MiB | 1,048,576 | 1.0M | 1.0MB |
| 1 GB / 1 GiB | 1,073,741,824 | 1.0G | 1.0GB |
| 1 TB / 1 TiB | 1,099,511,627,776 | 1.0T | 1.0TB |