2.1 KiB
/reference/minio-cli/minio-mc/mc-rm.rst /reference/minio-cli/minio-mc/mc-mv.rst /reference/minio-cli/minio-mc/mc-mirror.rst
|command| relies on the mc
removal API for deleting
objects. As part of removing the last object in a bucket prefix, mc
also recursively removes
each empty part of the prefix up to the bucket root. mc
only applies the recursive
removal to prefixes created implicitly as part of object write
operations - that is, the prefix was not created using an explicit
directory creation command such as mc mb
.
For example, consider a bucket photos
with the following
object prefixes:
photos/2021/january/myphoto.jpg
photos/2021/february/myotherphoto.jpg
photos/NYE21/NewYears.jpg
photos/NYE21
is the only prefix explicitly
created using mc mb
. All
other prefixes were implicitly created as part of writing the
object located at that prefix.
If an mc
command
removes myphoto.jpg
, the removal API automatically trims
the empty /january
prefix. If a subsequent mc
command removes
myotherphoto.jpg
, the removal API automatically trims both
the /february
prefix and the now-empty
/2021
prefix. If an mc
command removes NewYears.jpg
, the
/NYE21
prefix remains in place since it was
explicitly created.
If using |command| for operations on
a filesystem, mc
applies
this same behavior by recursively trimming empty directory paths up to
the root. However, the mc
remove API cannot distinguish between an explicitly
created directory path and an implicitly created one. If |command| deletes the last object at a
filesystem path, mc
recursively deletes all empty directories within that path up to the
root as part of the removal operation.