summaryrefslogtreecommitdiff
path: root/zsh/.zshrc
diff options
context:
space:
mode:
Diffstat (limited to 'zsh/.zshrc')
-rw-r--r--zsh/.zshrc7
1 files changed, 6 insertions, 1 deletions
diff --git a/zsh/.zshrc b/zsh/.zshrc
index c9f5cbc..2d3f55f 100644
--- a/zsh/.zshrc
+++ b/zsh/.zshrc
@@ -100,7 +100,12 @@ takedir() {
elif [[ $# -ge 2 ]]; then
local dest="${@:$#}"
mkdir -p "$dest"
- mv "${@:1:$#-1}" "$dest"
+ local abs_dest srcs=() src
+ abs_dest=$(realpath "$dest")
+ for src in "${@:1:$#-1}"; do
+ [[ "$(realpath "$src" 2>/dev/null)" != "$abs_dest" ]] && srcs+=("$src")
+ done
+ [[ ${#srcs[@]} -gt 0 ]] && mv "${srcs[@]}" "$dest"
cd "$dest"
else
echo "usage: take <dir> OR take <sources...> <destdir>"