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 格式列出对象和目录
ls
、lsl
和 lsd
设计为便于人类阅读。
lsf
设计为既便于人类阅读,也便于机器解析。
lsjson
设计为便于机器解析。
请注意,ls
和 lsl
默认会递归列出内容,可使用 --max-depth 1
来停止递归。
其他列表命令 lsd
、lsf
和 lsjson
默认不会递归列出内容,可使用 -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 命令、标志和后端帮助。