diff --git a/core/commands/files.go b/core/commands/files.go index 3fb48a2b653..720b28828da 100644 --- a/core/commands/files.go +++ b/core/commands/files.go @@ -479,7 +479,7 @@ Examples: return case *mfs.File: _, name := gopath.Split(path) - out := &filesLsOutput{[]mfs.NodeListing{mfs.NodeListing{Name: name}}} + out := &filesLsOutput{[]mfs.NodeListing{{Name: name}}} if long { out.Entries[0].Type = int(fsn.Type()) @@ -527,6 +527,9 @@ Examples: long, _, _ := res.Request().Option(longOptionName).Bool() for _, o := range out.Entries { if long { + if o.Type == int(mfs.TDir) { + o.Name += "/" + } fmt.Fprintf(buf, "%s\t%s\t%d\n", o.Name, o.Hash, o.Size) } else { fmt.Fprintf(buf, "%s\n", o.Name) diff --git a/test/sharness/t0250-files-api.sh b/test/sharness/t0250-files-api.sh index 793e168bede..244fdcd0a57 100755 --- a/test/sharness/t0250-files-api.sh +++ b/test/sharness/t0250-files-api.sh @@ -260,6 +260,13 @@ test_files_api() { verify_dir_contents /cats/this/is/a/dir ' + test_expect_success "dir has correct name" ' + DIR_HASH=$(ipfs files stat /cats/this --hash) && + echo "this/ $DIR_HASH 0" > ls_dir_expected && + ipfs files ls -l /cats | grep this/ > ls_dir_actual && + test_cmp ls_dir_expected ls_dir_actual + ' + test_expect_success "can copy file into new dir $EXTRA" ' ipfs files cp /ipfs/$FILE3 /cats/this/is/a/dir/file3 '