Skip to content

Do you know about default-directory variable in Emacs Lisp?

(buffer-file-name) ;; "/home/tony/minibuffer/notes.el"
default-directory  ;; "/home/tony/minibuffer/"
(copy-directory "~/minibuffer/foo/" "./bar/")

(let ((default-directory "/tmp/"))
  (copy-directory "~/minibuffer/foo/" "./bar/" nil t))
β—‰ tony@tony:~/minibuffer:
$ tree
.
β”œβ”€β”€ bar
β”œβ”€β”€ foo
β”‚   β”œβ”€β”€ foo-1
β”‚   └── foo-2
β”œβ”€β”€ #notes.el#
└── notes.el

2 directories, 4 files
β—‰ tony@tony:~/minibuffer:
$ tree
.
β”œβ”€β”€ bar
β”‚   └── foo
β”‚       β”œβ”€β”€ foo-1
β”‚       └── foo-2
β”œβ”€β”€ foo
β”‚   β”œβ”€β”€ foo-1
β”‚   └── foo-2
β”œβ”€β”€ #notes.el#
└── notes.el

3 directories, 6 files
β—‰ tony@tony:~/minibuffer:
$ rm -r bar/*
β—‰ tony@tony:~/minibuffer:
$ tree
.
β”œβ”€β”€ bar
β”œβ”€β”€ foo
β”‚   β”œβ”€β”€ foo-1
β”‚   └── foo-2
β”œβ”€β”€ #notes.el#
└── notes.el

2 directories, 4 files
β—‰ tony@tony:~/minibuffer:
$ tree /tmp/bar/
/tmp/bar/
└── foo
    β”œβ”€β”€ foo-1
    └── foo-2

1 directory, 2 files
β—‰ tony@tony:~/minibuffer:
$