rclone lsjson

rclone lsjson

以 JSON 格式列出路径中的目录和对象。

摘要

以 JSON 格式列出路径中的目录和对象。

输出是一个项目数组,其中每个项目如下所示:

{
  "Hashes" : {
     "SHA-1" : "f572d396fae9206628714fb2ce00f72e94f2258f",
     "MD5" : "b1946ac92492d2347c6235b4d2611184",
     "DropboxHash" : "ecb65bb98f9d905b70458986c39fcbad7715e5f2fcc3b1f07767d7c83e2438cc"
  },
  "ID": "y2djkhiujf83u33",
  "OrigID": "UYOJVTUW00Q1RzTDA",
  "IsBucket" : false,
  "IsDir" : false,
  "MimeType" : "application/octet-stream",
  "ModTime" : "2017-05-31T16:15:57.034468261+01:00",
  "Name" : "file.txt",
  "Encrypted" : "v0qpsdq8anpci8n929v3uu9338",
  "EncryptedPath" : "kja9098349023498/v0qpsdq8anpci8n929v3uu9338",
  "Path" : "full/path/goes/here/file.txt",
  "Size" : 6,
  "Tier" : "hot",
}

包含的确切属性集取决于后端:

  • IsBucket 属性仅会在基于存储桶的远程存储中包含,并且仅针对作为存储桶的目录。当值不为 true 时,该属性将始终被省略。
  • EncryptedEncryptedPath 属性仅会在加密的远程存储中包含,并且(如下所述)仅当设置了 --encrypted 选项时才会包含。

不同的选项也可能会影响包含哪些属性:

  • 如果未指定 --hash,则 Hashes 属性将被省略。可以使用 --hash-type 参数指定哈希类型(该参数可以重复使用)。如果设置了 --hash-type,则意味着设置了 --hash
  • 如果指定了 --no-modtime,则 ModTime 将为空。这可以加快在读取 ModTime 需要额外请求的远程存储(例如 s3、swift)上的操作速度。
  • 如果指定了 --no-mimetype,则 MimeType 将为空。这可以加快在读取 MimeType 需要额外请求的远程存储(例如 s3、swift)上的操作速度。
  • 如果未指定 --encrypted,则 EncryptedEncryptedPath 属性将被省略 —— 即使是在加密的远程存储中也是如此。
  • 如果设置了 --metadata,则将返回一个额外的 Metadata 属性。该属性将以 rclone 标准格式的 元数据 作为 JSON 对象。

默认情况下,会列出目录和文件/对象,但可以通过以下选项更改此行为:

  • 如果指定了 --dirs-only,则仅返回目录,不返回文件/对象。
  • 如果指定了 --files-only,则仅返回文件,不返回目录。

如果设置了 --stat,则输出不是项目数组,而是返回一个关于所指向项目的单个 JSON 数据块。如果未找到该项目,将返回错误,但是在基于存储桶的后端(如 s3、gcs、b2、azureblob 等)上,如果未找到该项目,将返回一个空目录,因为在这些后端无法区分空目录和不存在的目录。

Path 字段仅会显示所列出的远程路径下的文件夹。如果 “remote:path” 包含文件 “subfolder/file.txt”,则 “file.txt” 的 Path 将是 “subfolder/file.txt”,而不是 “remote:path/subfolder/file.txt”。当不使用 --recursive 时,Path 将始终与 Name 相同。

时间采用 RFC3339 格式,最高支持纳秒精度。秒数中的小数位数将取决于远程存储能够保存时间的精度,因此如果时间精确到最接近的毫秒(例如 Google Drive),则始终会显示 3 位数字(“2017-05-31T16:15:57.034+01:00”),而如果时间精确到最接近的秒(Dropbox、Box、WebDav 等),则不会显示小数位(“2017-05-31T16:15:57+01:00”)。

整个输出可以作为一个 JSON 数据块进行处理,或者也可以逐行处理,因为每个项目都会写在单独的行上(--stat 选项除外)。

任何过滤选项都可以应用于此命令。

有几个相关的列表命令:

  • ls 仅列出对象的大小和路径
  • lsl 仅列出对象的修改时间、大小和路径
  • lsd 仅列出目录
  • lsf 以易于解析的格式列出对象和目录
  • lsjson 以 JSON 格式列出对象和目录

lslsllsd 设计为供人类阅读。 lsf 设计为供人类和机器阅读。 lsjson 设计为供机器阅读。

请注意,lslsl 默认会递归列出 —— 使用 --max-depth 1 来停止递归。

其他列表命令 lsdlsflsjson 默认不会递归列出 —— 使用 -R 使其递归列出。

列出不存在的目录将产生错误,但对于不能有空目录的远程存储(例如 s3、swift 或 gcs —— 基于存储桶的远程存储)除外。

rclone lsjson remote:path [flags]

Options

      --dirs-only               仅在列表中显示目录
      --encrypted               显示加密后的名称
      --files-only              仅在列表中显示文件
      --hash                    在输出中包含哈希值(可能会花费更长时间)
      --hash-type stringArray   仅显示指定的哈希类型(可重复使用该参数)
  -h, --help                    显示 lsjson 命令的帮助信息
  -M, --metadata                在列表中添加元数据
      --no-mimetype             不读取 MIME 类型(可以加快操作速度)
      --no-modtime              不读取修改时间(可以加快操作速度)
      --original                显示底层对象的 ID
  -R, --recursive               递归列出目录内容
      --stat                    仅返回所指向文件的信息

接下来将介绍与其他命令共享的选项。 此处未列出的全局选项,请参阅全局标志页面

过滤器选项

用于过滤目录列表的标志

      --delete-excluded                     删除目标端中被排除在同步之外的文件
      --exclude stringArray                 排除符合指定模式的文件
      --exclude-from stringArray            从文件中读取要排除的文件模式(使用 - 从标准输入读取)
      --exclude-if-present stringArray      如果指定文件名存在,则排除该目录
      --files-from stringArray              从文件中读取源文件名列表(使用 - 从标准输入读取)
      --files-from-raw stringArray          从文件中读取源文件名列表,不对行进行任何处理(使用 - 从标准输入读取)
  -f, --filter stringArray                  添加文件过滤规则
      --filter-from stringArray             从文件中读取文件过滤模式(使用 - 从标准输入读取)
      --ignore-case                         在过滤时忽略大小写(大小写不敏感)
      --include stringArray                 包含符合指定模式的文件
      --include-from stringArray            从文件中读取要包含的文件模式(使用 - 从标准输入读取)
      --max-age Duration                    仅传输比指定时间(以秒或后缀 ms|s|m|h|d|w|M|y 表示)更新的文件(默认关闭)
      --max-depth int                       如果设置,则将递归深度限制为此值(默认 -1)
      --max-size SizeSuffix                 仅传输小于指定大小(以 KiB 或后缀 B|K|M|G|T|P 表示)的文件(默认关闭)
      --metadata-exclude stringArray        排除符合指定模式的元数据
      --metadata-exclude-from stringArray   从文件中读取要排除的元数据模式(使用 - 从标准输入读取)
      --metadata-filter stringArray         添加元数据过滤规则
      --metadata-filter-from stringArray    从文件中读取元数据过滤模式(使用 - 从标准输入读取)
      --metadata-include stringArray        包含符合指定模式的元数据
      --metadata-include-from stringArray   从文件中读取要包含的元数据模式(使用 - 从标准输入读取)
      --min-age Duration                    仅传输比指定时间(以秒或后缀 ms|s|m|h|d|w|M|y 表示)更旧的文件(默认关闭)
      --min-size SizeSuffix                 仅传输大于指定大小(以 KiB 或后缀 B|K|M|G|T|P 表示)的文件(默认关闭)

Listing Options

Flags for listing directories

      --default-time Time   Time to show if modtime is unknown for files and directories (default 2000-01-01T00:00:00Z)
      --fast-list           Use recursive list if available; uses more memory but fewer transactions

参见

  • rclone - 显示 rclone 命令、标志和后端帮助。