diff --git a/cista/protocol.py b/cista/protocol.py index 2bdf775..02a35d9 100644 --- a/cista/protocol.py +++ b/cista/protocol.py @@ -75,13 +75,16 @@ class Cp(ControlBase): if not dst.is_dir(): raise BadRequest("The destination must be a directory") for p in sel: - # Note: copies as dst rather than in dst unless name is appended. - shutil.copytree( - p, - dst / p.name, - dirs_exist_ok=True, - ignore_dangling_symlinks=True, - ) + if p.is_dir(): + # Note: copies as dst rather than in dst unless name is appended. + shutil.copytree( + p, + dst / p.name, + dirs_exist_ok=True, + ignore_dangling_symlinks=True, + ) + else: + shutil.copy2(p, dst) ControlTypes = MkDir | Rename | Rm | Mv | Cp