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.main
parent
8d00173fd2
commit
28da8f916b
@ -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
|
||||
|
||||
|
Loading…
Reference in new issue