forked from TrueCloudLab/rclone
lsd: Add -R flag and fix and update docs for all ls commands
This commit is contained in:
parent
d0f32b62fd
commit
96a62d55a2
5 changed files with 87 additions and 4 deletions
|
@ -19,6 +19,15 @@ var commandDefintion = &cobra.Command{
|
||||||
Long: `
|
Long: `
|
||||||
Lists the objects in the source path to standard output in a human
|
Lists the objects in the source path to standard output in a human
|
||||||
readable format with size and path. Recurses by default.
|
readable format with size and path. Recurses by default.
|
||||||
|
|
||||||
|
Eg
|
||||||
|
|
||||||
|
$ rclone ls swift:bucket
|
||||||
|
60295 bevajer5jef
|
||||||
|
90613 canole
|
||||||
|
94467 diwogej7
|
||||||
|
37600 fubuwic
|
||||||
|
|
||||||
` + lshelp.Help,
|
` + lshelp.Help,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
|
|
|
@ -16,9 +16,9 @@ There are several related list commands
|
||||||
` + "`lsf`" + ` is designed to be human and machine readable.
|
` + "`lsf`" + ` is designed to be human and machine readable.
|
||||||
` + "`lsjson`" + ` is designed to be machine readable.
|
` + "`lsjson`" + ` is designed to be machine readable.
|
||||||
|
|
||||||
Note that ` + "`ls`,`lsl`,`lsd`" + ` all recurse by default - use "--max-depth 1" to stop the recursion.
|
Note that ` + "`ls` and `lsl`" + ` recurse by default - use "--max-depth 1" to stop the recursion.
|
||||||
|
|
||||||
The other list commands ` + "`lsf`,`lsjson`" + ` do not recurse by default - use "-R" to make them recurse.
|
The other list commands ` + "`lsd`,`lsf`,`lsjson`" + ` do not recurse by default - use "-R" to make them recurse.
|
||||||
|
|
||||||
Listing a non existent directory will produce an error except for
|
Listing a non existent directory will produce an error except for
|
||||||
remotes which can't have empty directories (eg s3, swift, gcs, etc -
|
remotes which can't have empty directories (eg s3, swift, gcs, etc -
|
||||||
|
|
|
@ -5,23 +5,51 @@ import (
|
||||||
|
|
||||||
"github.com/ncw/rclone/cmd"
|
"github.com/ncw/rclone/cmd"
|
||||||
"github.com/ncw/rclone/cmd/ls/lshelp"
|
"github.com/ncw/rclone/cmd/ls/lshelp"
|
||||||
|
"github.com/ncw/rclone/fs"
|
||||||
"github.com/ncw/rclone/fs/operations"
|
"github.com/ncw/rclone/fs/operations"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
recurse bool
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
cmd.Root.AddCommand(commandDefintion)
|
cmd.Root.AddCommand(commandDefintion)
|
||||||
|
commandDefintion.Flags().BoolVarP(&recurse, "recursive", "R", false, "Recurse into the listing.")
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandDefintion = &cobra.Command{
|
var commandDefintion = &cobra.Command{
|
||||||
Use: "lsd remote:path",
|
Use: "lsd remote:path",
|
||||||
Short: `List all directories/containers/buckets in the path.`,
|
Short: `List all directories/containers/buckets in the path.`,
|
||||||
Long: `
|
Long: `
|
||||||
Lists the directories in the source path to standard output. Recurses
|
Lists the directories in the source path to standard output. Does not
|
||||||
by default.
|
recurse by default. Use the -R flag to recurse.
|
||||||
|
|
||||||
|
This command lists the total size of the directory (if known, -1 if
|
||||||
|
not), the modification time (if known, the current time if not), the
|
||||||
|
number of objects in the directory (if known, -1 if not) and the name
|
||||||
|
of the directory, Eg
|
||||||
|
|
||||||
|
$ rclone lsd swift:
|
||||||
|
494000 2018-04-26 08:43:20 10000 10000files
|
||||||
|
65 2018-04-26 08:43:20 1 1File
|
||||||
|
|
||||||
|
Or
|
||||||
|
|
||||||
|
$ rclone lsd drive:test
|
||||||
|
-1 2016-10-17 17:41:53 -1 1000files
|
||||||
|
-1 2017-01-03 14:40:54 -1 2500files
|
||||||
|
-1 2017-07-08 14:39:28 -1 4000files
|
||||||
|
|
||||||
|
If you just want the directory names use "rclone lsf --dirs-only".
|
||||||
|
|
||||||
` + lshelp.Help,
|
` + lshelp.Help,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
|
if recurse {
|
||||||
|
fs.Config.MaxDepth = 0
|
||||||
|
}
|
||||||
fsrc := cmd.NewFsSrc(args)
|
fsrc := cmd.NewFsSrc(args)
|
||||||
cmd.Run(false, false, command, func() error {
|
cmd.Run(false, false, command, func() error {
|
||||||
return operations.ListDir(fsrc, os.Stdout)
|
return operations.ListDir(fsrc, os.Stdout)
|
||||||
|
|
|
@ -46,6 +46,15 @@ standard output in a form which is easy to parse by scripts. By
|
||||||
default this will just be the names of the objects and directories,
|
default this will just be the names of the objects and directories,
|
||||||
one per line. The directories will have a / suffix.
|
one per line. The directories will have a / suffix.
|
||||||
|
|
||||||
|
Eg
|
||||||
|
|
||||||
|
$ rclone lsf swift:bucket
|
||||||
|
bevajer5jef
|
||||||
|
canole
|
||||||
|
diwogej7
|
||||||
|
ferejej3gux/
|
||||||
|
fubuwic
|
||||||
|
|
||||||
Use the --format option to control what gets listed. By default this
|
Use the --format option to control what gets listed. By default this
|
||||||
is just the path, but you can use these parameters to control the
|
is just the path, but you can use these parameters to control the
|
||||||
output:
|
output:
|
||||||
|
@ -58,6 +67,15 @@ output:
|
||||||
So if you wanted the path, size and modification time, you would use
|
So if you wanted the path, size and modification time, you would use
|
||||||
--format "pst", or maybe --format "tsp" to put the path last.
|
--format "pst", or maybe --format "tsp" to put the path last.
|
||||||
|
|
||||||
|
Eg
|
||||||
|
|
||||||
|
$ 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
|
||||||
|
|
||||||
If you specify "h" in the format you will get the MD5 hash by default,
|
If you specify "h" in the format you will get the MD5 hash by default,
|
||||||
use the "--hash" flag to change which hash you want. Note that this
|
use the "--hash" flag to change which hash you want. Note that this
|
||||||
can be returned as an empty string if it isn't available on the object
|
can be returned as an empty string if it isn't available on the object
|
||||||
|
@ -69,11 +87,30 @@ For example to emulate the md5sum command you can use
|
||||||
|
|
||||||
rclone lsf -R --hash MD5 --format hp --separator " " --files-only .
|
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
|
||||||
|
|
||||||
(Though "rclone md5sum ." is an easier way of typing this.)
|
(Though "rclone md5sum ." is an easier way of typing this.)
|
||||||
|
|
||||||
By default the separator is ";" this can be changed with the
|
By default the separator is ";" this can be changed with the
|
||||||
--separator flag. Note that separators aren't escaped in the path so
|
--separator flag. Note that separators aren't escaped in the path so
|
||||||
putting it last is a good strategy.
|
putting it last is a good strategy.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
` + lshelp.Help,
|
` + lshelp.Help,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
|
|
|
@ -19,6 +19,15 @@ var commandDefintion = &cobra.Command{
|
||||||
Long: `
|
Long: `
|
||||||
Lists the objects in the source path to standard output in a human
|
Lists the objects in the source path to standard output in a human
|
||||||
readable format with modification time, size and path. Recurses by default.
|
readable format with modification time, size and path. Recurses by default.
|
||||||
|
|
||||||
|
Eg
|
||||||
|
|
||||||
|
$ rclone lsl swift:bucket
|
||||||
|
60295 2016-06-25 18:55:41.062626927 bevajer5jef
|
||||||
|
90613 2016-06-25 18:55:43.302607074 canole
|
||||||
|
94467 2016-06-25 18:55:43.046609333 diwogej7
|
||||||
|
37600 2016-06-25 18:55:40.814629136 fubuwic
|
||||||
|
|
||||||
` + lshelp.Help,
|
` + lshelp.Help,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
|
|
Loading…
Reference in a new issue