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