rclone lsf

rclone lsf

列出远程路径(remote:path)中的目录和对象,并将其格式化以供解析。

摘要

将源路径的内容(目录和对象)以易于脚本解析的形式 以易于脚本解析的格式将源路径的内容(目录和对象)列出到标准输出中。 默认情况下 默认情况下,这只是对象和目录的名称、 每行一个。 目录后缀为 /

例如

$ rclone lsf swift:bucket
bevajer5jef
canole
diwogej7
ferejej3gux/
fubuwic

使用 --format 选项来控制列出的内容。 默认情况下 只是路径,但你可以使用这些参数来控制 输出:

p - path
s - size
t - modification time
h - hash
i - ID of object
o - Original ID of underlying object
m - MimeType of object if known
e - encrypted name
T - tier of storage if known, e.g. "Hot" or "Cool"
M - Metadata of object in JSON blob format, eg {"key":"value"}

因此,如果您想要路径、大小和修改时间,可以使用 --format "pst",或者使用 --format "tsp" 把路径放在最后。

例如

$ rclone lsf  --format "tsp" swift:bucket
2016-06-25 18:55:41;60295;bevajer5jef
2016-06-25 18:55:43;90613;canole
2016-06-25 18:55:43;94467;diwogej7
2018-04-26 08:50:45;0;ferejej3gux/
2016-06-25 18:55:40;37600;fubuwic

如果在格式中指定了 “h”,默认情况下将获取 MD5 哈希值。 可以使用 --hash 标志来更改所需的哈希类型。请注意,如果对象(包括目录)上没有可用的哈希值,将返回空字符串;如果从对象读取哈希值时出现错误,将返回 “ERROR”;如果对象不支持该哈希类型,将返回 “UNSUPPORTED”。

例如,要模拟 md5sum 命令,你可以使用

rclone lsf -R --hash MD5 --format hp --separator "  " --files-only .

Eg

$ rclone lsf -R --hash MD5 --format hp --separator "  " --files-only swift:bucket
7908e352297f0f530b84a756f188baa3  bevajer5jef
cd65ac234e6fea5925974a51cdd865cc  canole
03b5341b4f234b9d984d03ad076bae91  diwogej7
8fd37c3810dd660778137ac3a66cc06d  fubuwic
99713e14a4c4ff553acaf1930fad985b  gixacuh7ku

(不过,使用 “rclone md5sum .” 来实现这个功能会更简便。)

默认的分隔符是 “;",可以使用 --separator 标志来更改分隔符。请注意,路径中的分隔符不会进行转义处理,因此将分隔符放在最后是个不错的策略。

Eg

$ rclone lsf  --separator "," --format "tshp" swift:bucket
2016-06-25 18:55:41,60295,7908e352297f0f530b84a756f188baa3,bevajer5jef
2016-06-25 18:55:43,90613,cd65ac234e6fea5925974a51cdd865cc,canole
2016-06-25 18:55:43,94467,03b5341b4f234b9d984d03ad076bae91,diwogej7
2018-04-26 08:52:53,0,,ferejej3gux/
2016-06-25 18:55:40,37600,8fd37c3810dd660778137ac3a66cc06d,fubuwic

你可以以标准 CSV 格式输出。如果内容包含逗号,将会用双引号 " 进行转义。

Eg

$ rclone lsf --csv --files-only --format ps remote:path
test.log,22355
test.sh,449
"this file contains a comma, in the file name.txt",6

请注意,--absolute 参数对于生成文件列表非常有用,这些列表可以通过 --files-from-raw 标志传递给 rclone copy 命令。

例如,要找出所有在一天内修改过的文件并仅复制这些文件(而不遍历整个目录结构):

rclone lsf --absolute --files-only --max-age 1d /path/to/local > new_files
rclone copy --files-from-raw new_files /path/to/local remote:path

默认的时间格式是 '2006-01-02 15:04:05'。 可以使用 --time-format 标志指定 其他格式。 示例:

rclone lsf remote:path --format pt --time-format 'Jan 2, 2006 at 3:04pm (MST)'
rclone lsf remote:path --format pt --time-format '2006-01-02 15:04:05.000000000'
rclone lsf remote:path --format pt --time-format '2006-01-02T15:04:05.999999999Z07:00'
rclone lsf remote:path --format pt --time-format RFC3339
rclone lsf remote:path --format pt --time-format DateOnly
rclone lsf remote:path --format pt --time-format max

--time-format max 会自动将 2006-01-02 15:04:05.000000000 截断为远程端所支持的最大精度。

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

有几个相关的列表命令:

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

lslsllsd 设计为便于人类阅读。 lsf 设计为既便于人类阅读,也便于机器解析。 lsjson 设计为便于机器解析。

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

其他列表命令 lsdlsflsjson 默认不会递归列出内容,可使用 -R 来使其递归。

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

rclone lsf remote:path [flags]

Options

--absolute             在路径名前添加一个前导 /
      --csv                  以 CSV 格式输出
  -d, --dir-slash            在目录名后追加一个斜杠(默认值为 true)
      --dirs-only            仅列出目录
      --files-only           仅列出文件
  -F, --format string        输出格式 - 详情请参阅帮助信息(默认值为 "p")
      --hash h               当格式中使用 h 时,使用此哈希算法:MD5|SHA - 1|DropboxHash(默认值为 "md5")
  -h, --help                 显示 lsf 命令的帮助信息
  -R, --recursive            递归列出内容
  -s, --separator string     格式中各项的分隔符(默认值为 ";")
  -t, --time-format string   指定自定义时间格式,或使用 'max' 以获取远程端支持的最大精度(默认值:2006 - 01 - 02 15:04:05)

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

过滤器选项

用于过滤目录列表的标志

      --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 命令、标志和后端帮助。