minibuffer

How to copy the content of a directory in Emacs Lisp?

October 07, 2023
(copy-directory "./foo/" "./bar/")
(copy-directory "./foo/" "./bar/baz/" nil t)
(copy-directory "./foo/" "./bar/" nil t t)
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
└── notes.el

3 directories, 4 files
◉ tony@tony:~/minibuffer:
$ cp -r foo/* bar/
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
└── notes.el

4 directories, 7 files
◉ tony@tony:~/minibuffer:
$ rm -r bar/*
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   └── foo
│       ├── foo-1
│       ├── foo-2
│       ├── foo-3
│       └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
└── notes.el

5 directories, 7 files
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   ├── baz
│   │   └── foo
│   │       ├── foo-1
│   │       ├── foo-2
│   │       ├── foo-3
│   │       └── foo-dir
│   └── foo
│       ├── foo-1
│       ├── foo-2
│       ├── foo-3
│       └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
└── notes.el

8 directories, 10 files
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   ├── baz
│   │   └── foo
│   │       ├── foo-1
│   │       ├── foo-2
│   │       ├── foo-3
│   │       └── foo-dir
│   ├── foo
│   │   ├── foo-1
│   │   ├── foo-2
│   │   ├── foo-3
│   │   └── foo-dir
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
└── notes.el

9 directories, 13 files
◉ tony@tony:~/minibuffer:
$ rm -r bar/*
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   └── foo
│       ├── foo-1
│       ├── foo-2
│       ├── foo-3
│       └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
├── #notes.el#
└── notes.el

5 directories, 8 files
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   ├── baz
│   │   └── foo
│   │       ├── foo-1
│   │       ├── foo-2
│   │       ├── foo-3
│   │       └── foo-dir
│   └── foo
│       ├── foo-1
│       ├── foo-2
│       ├── foo-3
│       └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
├── #notes.el#
└── notes.el

8 directories, 11 files
◉ tony@tony:~/minibuffer:
$ rm -r bar/*
◉ tony@tony:~/minibuffer:
$ tree
.
├── bar
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
├── foo
│   ├── foo-1
│   ├── foo-2
│   ├── foo-3
│   └── foo-dir
├── #notes.el#
└── notes.el

4 directories, 8 files