터미널에서 Snow Leopard의 휴지통으로 파일 이동 사용하면 Finder에서 휴지통으로 이동

Snow Leopard를 사용하면 Finder에서 휴지통으로 이동 한 파일을 “Put Back”할 수 있습니다. 그러나 mv <file> ~/.Trash명령 줄에서 할 때 “뒤로”옵션을 얻지 못합니다.

Snow Leopard에 파일을 휴지통으로 옮기는 동안 여전히 “Put Back”기능을 사용할 수있게하는 기본 명령이 있습니까?



답변

파일을 휴지통으로 옮길 때 OS X은 .DS_Store파일을 ~/.Trash“Put back”정보로 업데이트합니다 . (자세한 내용은 이 질문을 참조하십시오 )

이를 업데이트하려면 .DS_Store파일을 터미널의 휴지통으로 옮길 때 파일 도 업데이트해야 합니다.


답변

Ruby gem osx-trash 설치를 권장합니다 .

어떻게?

sudo gem install osx-trash

용법?

Usage: trash [OPTIONS] <file> [<file> ...]
       trash [-e | --empty]
       trash [-l | --list]
Specific options:
    -e, --empty                      Empty the trash
    -l, --list                       List items in the trash
    -h, --help                       Show this message
    -v, --version                    Show version

Manipulate to the Finder's trash.

답변

MacOSX SDK에는 기능 FSPathMoveObjectToTrashSync과 관련이 있습니다. 파이썬 (또는 무엇이든) 스크립트를 작성하는 것이 쉬워야합니다.

편집 : 방금 코딩했습니다. rm-trash.py 에서 찾을 수 있습니다 .


답변

rmtrash 프로그램 이 필요 합니다.

마치 마치 파인더에서 마치 휴지통에 항목을 추가하는 데 사용할 수 있습니다.

편집 : 방금 rmtrash를 사용하여 삭제하고 복구하려고했습니다. 파인더에서 삭제하는 것과 똑같이 작동합니다. 파일은 휴지통에 표시되며, 드래그하여 똑같이 비울 수 있습니다. ’06 년 이후부터 사용되었습니다.


답변

대안을 살펴본 후 나는 그것을 발견했다.

  • rmtrash 프로그램은 시스템 API를 사용하지 않고 파일을 휴지통 디렉토리로 이동하므로 .DS_Store 파일은 업데이트되지 않습니다 . 또한 리사이클 사운드를 트리거하지 않습니다.
  • 파이썬 스크립트는 마운틴 라이온에서 더 이상 사용되지 않는 메소드를 호출하여 재활용 사운드를 트리거하지 않습니다.
  • 루비 스크립트는 작동하지만 파이썬과 같은 sloooooow입니다.

그래서 Nimrod 프로그래밍 언어로 구현 된 내 자신의 휴지통 명령을 작성 했으므로 백그라운드 프로세스에서 휴지통 사운드를 빠르게 트리거합니다. 즉, 명령을 입력하고 실행하면 사운드가 재생 될 때까지 기다릴 필요가 없으므로 즉시 종료됩니다. 단점은 nimrod를 컴파일 한 다음이 프로그램을 컴파일해야한다는 것입니다 (바이너리 죄송합니다!).

추신 : 최선의 구현이 rmtrash의 내가 니므롯에서 사용하고 공식 API를 사용한다는 것 정직하게하려면 일반 목적-C입니다 .


답변

확인하십시오 trash-cli. 크로스 플랫폼에서 작동하며 휴지통 사운드가 없으며 Put Back을 지원합니다.

다음과 같이 설치할 수 있습니다 ( Node.js 필요 ) .

$ npm install --global trash-cli

또는 Node.js를 사용하지 않으려면 기본 바이너리를 osx-trash수동으로 설치할 수 있습니다.


답변

나는 오늘 같은 문제가 있었고 위에서 주어진 rmtrash 프로그램을 확인했다. 불행히도 지금까지 본 모든 솔루션은 파일을 홈 디렉토리의 .Trash로 옮깁니다.

반면에 Finder는 파일 파일 시스템의 마운트 지점에 따라 다른 휴지통 폴더로 폴더를 이동합니다.

따라서 내가 얻을 수있는 가장 쉬운 해결책은 10.5.8에서 작성되었습니다. 최신 버전의 OS X에서 테스트하려면 다음과 같습니다.

osascript -e 'tell application "Finder" to delete POSIX file "'FULL FILENAME HERE'"'

여기 내가 만든 쉘 스크립트가있다 :

#!/bin/bash
declare -a files
for f in "$@" ; do
    if [ -r "$f" ] ; then
        case "$f" in
        /*) ;;
        *) f="$( pwd )/$f" ;;
        esac
        files=("${files[@]}" "$f")
    else
        echo "Can't find '$f'" >&2
    fi
done
if [ ${#files[@]} -gt 0 ] ; then
    osascript -e '
    on run argv
        repeat with f in argv
            set x to (POSIX file f) as string
            tell application "Finder" to delete x
        end
    end
    ' "${files[@]}" > /dev/null
fi