답변:
다중 항목 선택에 대해 "뒤로 반입"이 비활성화 된 경우, 선택된 항목 중 하나 이상에 휴지통 위치의 .DS_Store 파일에 저장된 원래 위치 정보가없는 것입니다.
이상적이지는 않지만 나머지 파일을 수동으로 제출하기 전에 일괄 적으로 "뒤로"배치 할 수있는 그룹을 찾는 파일의 다중 선택 하위 집합을 사용해보십시오 .
AppleScript 편집기에서 다음과 같은 스크립트를 실행하십시오.
repeat
tell application "Finder"
close windows
if items of trash is {} then return
open trash
activate
end tell
tell application "System Events"
key code 125 -- down arrow
key code 51 using command down -- command-delete
end tell
end repeat
일부 항목을 다시 넣으려고 할 때 Finder에 비밀번호 대화 상자가 표시되면 tell application "System Events"
블록 끝에 다음과 같이 추가하십시오 .
delay 1
if exists window 1 of process "SecurityAgent" then
tell window 1 of process "SecurityAgent"
set value of text field 2 of scroll area 1 of group 1 to "pa55word"
click button 2 of group 2
end tell
end if
delay 1
"휴지통의 모든 항목을 다시 넣습니다"라는 AppleScript가 저에게 효과적 이었습니다.
"AppleScript Editor"를 열고 아래 행을 복사 / 붙여 넣기 한 다음 필요한만큼 스크립트를 실행하십시오.
tell application "System Events"
tell process "Finder"
repeat 100 times
tell application "Finder" to open trash
tell application "Finder" to activate
key code 126
key down command
key code 51
key up command
delay 0.2 -- adjust delay as needed
end repeat
end tell
end tell
tell application "Finder" to close every window
key code 51 using key command down
. (이것은 다른 답변에서 수정 된 것입니다. 내 데스크탑으로 복원 된 파일은이 스크립트로 엉망인 내 시스템 암호를 원했습니다. 나는 그것들을 취소하고 그 수를 수동으로 복원했습니다.
이 AppleScript 코드는 최신 버전의 macOS Mojave를 사용하여 작동합니다.
이 코드는 휴지통에있는 모든 항목을 반복하여 각 항목을 원래 위치로 되돌립니다.
휴지통에있는 파일의 원본 소스 폴더가 더 이상 존재하지 않으면 repeat until trashCount is 0
명령이 루프를 종료합니다. 휴지통에 남아있는 파일은이 이유로 인해 되돌릴 수없는 파일 만됩니다.
최신 정보
휴지통에서 파일을 다시 가져 오는 프로세스의 반복 루프 중에 데스크탑에서 항목을 선택할 수 있으므로 선택한 데스크탑 항목이 프로세스에 걸리고 휴지통으로 이동 될 수 있습니다. 이 시나리오를 피하기 위해 현재 잠금 해제 된 데스크탑 항목을 잠그고 스크립트 끝에서 잠금을 해제하는 코드를 추가했습니다.
이제 모든 데스크탑 항목이 잠겨 있기 때문에 ... 휴지통에서 파일을 되 돌리는 과정에서 어떤 이유로 든 실수로 데스크탑에서 파일 또는 폴더를 선택하고 코드가 선택된 데스크탑 항목을 처리하려고 시도하는 경우 ... 항목이 잠겨 있음을 나타내는 대화 상자 창을 생성하고 휴지통으로 계속 보낼 것인지 묻습니다. 스크립트 끝까지 시스템 이벤트 텔 블록은 생성 된 대화 상자를 처리합니다.
property desktopFolder : path to desktop
property unlockedFiles : missing value
tell application "Finder"
set trashCount to count of every item of trash
set unlockedFiles to (items of desktopFolder whose locked is false)
repeat with i in unlockedFiles
set locked of i to true
end repeat
end tell
repeat until trashCount is 0
tell application "Finder" to set orphanCount to count of every item of trash
putFilesBack()
tell application "Finder" to set trashCount to count of every item of trash
if orphanCount is equal to trashCount then exit repeat
end repeat
delay 1
tell application "System Events"
repeat until not (exists of button "Stop" of scroll area 1 of window 2 of application process "Finder")
if exists of button "Stop" of scroll area 1 of window 2 of application process "Finder" then
click button "Stop" of scroll area 1 of window 2 of application process "Finder"
end if
end repeat
end tell
tell application "Finder"
close every Finder window
delay 1
repeat with i in unlockedFiles
set locked of i to false
end repeat
end tell
on putFilesBack()
global trashFiles, trashCount, thisItem
tell application "Finder"
set trashFiles to every item of trash
set frontmost to true
repeat while not frontmost
delay 0.1
end repeat
my closeFinderWindows()
end tell
delay 0.1
tell application "System Events"
tell application process "Finder"
repeat with i from 1 to count of trashFiles
set thisItem to item i of trashFiles
delay 0.1
set frontmost to true
select thisItem
delay 0.1
try
key code 51 using {command down}
end try
delay 0.1
my closeFinderWindows()
delay 0.1
end repeat
end tell
end tell
tell application "Finder" to set trashCount to count of every item of trash
end putFilesBack
on closeFinderWindows()
tell application "Finder"
set finderWindowRef to (a reference to (every Finder window whose name is not "Trash"))
set finderWindowRef to contents of finderWindowRef
close (items of finderWindowRef)
end tell
end closeFinderWindows
이것은 나를 위해 일했다 :
큰 폴더 또는 많은 수의 개별 파일을 되돌려 야하는 경우이 기술을 사용하십시오. 하나 또는 두 개의 파일 만 필요한 경우 "뒤로 되돌리기"기능을 사용하십시오.
Snow Leopard 이전에는 OS X에 기본적으로 파일이 삭제 된 원래 위치로 파일을 복원 할 수있는 기능이 없었습니다 (Windows 환경에서 휴지통 컨텍스트 메뉴의 "복원"옵션을 사용하여 기본적으로 수행 할 수 있음). 우연히 부인이 한 곳에서 약 10,000 개의 더하기 파일을 삭제 한 것과 똑같은 일을했습니다.
모든 옵션을 살펴본 후 Time Machine을 통해 시스템 복원을 수행했습니다. 파일을 적절한 위치로 가져 오는 것이 가장 편리한 방법이었습니다.
휴지통의 모든 파일을 Finder의 모든 내 파일 탭으로 드래그하십시오. 파일이 많으면 시간이 걸립니다. 우리는 10000+ 파일을 테스트했습니다. Finder는 모든 파일을 원래 위치로 복원합니다.
@thierry가 이미 Giacomo Balli 에서 제공 한 가까운 솔루션을 기반으로 , 우리 는 문제가 여전히 남아 있기 때문에 여러 사람을 돕기 위해이 솔루션 을 만들었습니다 . 이 때 맥 OS에서 파일을 삭제 , 원래의 위치는되어 저장 에.DsStore
복원하려는 경우 숨겨진 파일. 최신 버전의 macOS는 휴지통에 물건을 넣을 수있는 기능을 제공합니다. 알다시피 Dock에서 휴지통 아이콘을 클릭하면 휴지통에있는 항목이 표시됩니다. 파일을 마우스 오른쪽 단추로 클릭하거나 Control 키를 누른 상태에서 클릭하거나 Command 키를 누른 상태에서 여러 항목을 클릭하여 선택한 다음 Control 키를 누른 상태에서 클릭하면 뒤로 놓기 옵션이 표시됩니다. 유일한 문제는 한 번에 하나의 항목에 대해서만 할 수 있다는 것입니다.
해결책
리포지토리를 로컬 컴퓨터에 복제하여 시작하여 솔루션 사용을 시작할 수 있습니다.
git clone git@github.com : opprDev / trash-back.git
CD 휴지통
osascript 명령을 통해 해당 컴퓨터 에서 AppleScript 를 실행하십시오 .
osascript 스크립트 /trash-back.scpt
결론
AppleScript를 실행 하면 명령 줄에서 원격으로 수행 할 수있는 작업이 크게 증가하고 그렇지 않은 멋진 방법을 많이 사용할 수 있습니다. 명령 행에서 전체 스크립트를 실행할 수 있지만이 실행 방법은 ssh를 사용하여 원격 컴퓨터에 로그인하여 해당 컴퓨터에서 명령을 통해 AppleScript 를 실행할 수도 osascript
있습니다. 이 osascript
명령은 -l 수정자를 사용하여 다른 Open Scripting Architecture 언어를 실행할 수도 있습니다 .