# # Moves files to the macOS trash. # # function trash { emulate -L zsh setopt LOCAL_OPTIONS EXTENDED_GLOB local file local -a files=() for file in $@; do if [[ -e $file ]]; then # ':a' gets the full path (do not use ':A', which would resolve symlinks) files+=("the POSIX file \"${file:a}\"") else print "trash: No such file or directory '$file'." >&2 return 1 fi done if (( $#files == 0 )); then print 'usage: trash ' >&2 return 64 # Match rm's return code. fi # Join file list with commas, and tell Finder to trash that list. local file_list="${(pj., .)files}" osascript 2>&1 > /dev/null -e "tell app \"Finder\" to move { "${file_list}" } to trash" # }