diff options
| author | bh <qn+git@epicurus.dev> | 2026-03-31 12:50:16 +0800 |
|---|---|---|
| committer | bh <qn+git@epicurus.dev> | 2026-03-31 12:50:16 +0800 |
| commit | 978d4116ec19b7e43d99f227109cb25289ee311f (patch) | |
| tree | 60266b7f45c394dd5c724b7495b7371906afc3bb | |
| parent | e6e212e7e595df845ff3cfa9818f2cff28812a33 (diff) | |
zsh: fix take function
| -rw-r--r-- | zsh/.zshrc | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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>" |
