Use Finder to trash files to enable Put Back.

Though AppleScript is slow, Put Back data is stored in
~/.Trash/.DS_Store, and there is no way to write to it
from the shell at this time.

The minimum Zsh version has been incremented to 4.3.10 to use
the 'a' modifier to convert a relative path into a full path.
This commit is contained in:
Sorin Ionescu 2012-01-18 22:02:23 -05:00
parent 8d00173fd2
commit 28da8f916b
2 changed files with 20 additions and 13 deletions

View File

@ -1,7 +1,7 @@
# Initializes Oh My Zsh.
# Check for the minimum supported version.
min_zsh_version=4.3.9
min_zsh_version='4.3.10'
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
print "omz: The minimum supported Zsh version is $min_zsh_version."
fi

View File

@ -1,13 +1,20 @@
local trash_dir="${HOME}/.Trash"
local trash_item
local item
for item in "${@}"; do
if [[ -e "${item}" ]] || [[ -L "${item}" ]]; then
trash_item="${trash_dir}/${item:t}"
if [[ -e "${trash_item}" ]] || [[ -L "${trash_item}" ]]; then
trash_item="${trash_item} $(date "+%H-%M-%S")"
fi
mv -f "${item}" "${trash_item}"
fi
done
print -N "${@:a}" | xargs -0 osascript -e '
on run theFilePaths
tell application "Finder"
set thePOSIXFiles to {}
repeat with aFilePath in theFilePaths
set aPOSIXFile to aFilePath as POSIX file
if exists aPOSIXFile
set end of thePOSIXFiles to aPOSIXFile
end if
end repeat
move every item of thePOSIXFiles to trash
end tell
end run
' &>/dev/null
if (( $? != 0)); then
print "$0: failed to move one or more items" >&2
return 1
fi