Skip to content

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

(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