노틸러스 스크립트에서 클립보드로 파일 복사

노틸러스 스크립트에서 클립보드로 파일 복사

노틸러스 창에서 선택한 파일을 기반으로 아카이브 파일을 생성하는 노틸러스 스크립트가 있습니다. 아카이브가 /tmp디렉터리에 생성됩니다. 나는 방법을 원한다복사이 파일을 스크립트에서 클립보드로 복사하면 사용자가 데스크탑이나 홈 디렉토리로 이동하여 붙여넣을 수 있습니다.

나는 xclip이것을 사용하여 시도했지만 xsel파일 복사 작업이 아닌 파일 내용을 복사하는 것 같습니다.

xclip -in -selection c generated-archive
echo -n generated-archive | xsel --clipboard --input

그들 중 누구도 내가 필요한 것을 하지 않았습니다.

그렇다면 이것이 가능한지 궁금합니다. 그렇다면 어떻게 해야 합니까?

감사해요.

답변1

노틸러스는 클립보드 변경 사항의 내부 상태를 추적하는 것처럼 보입니다. 이는 클립보드 상태에 대한 모든 변경 사항(동일한 파일 경로 문자열로 교체하는 것을 포함)이 자동으로 취소됨을 의미합니다.붙여넣기 보류 중상태이므로 외부에서 로드된 클립보드에 유효한 파일 경로가 포함되어 있으면 아무 일도 일어나지 않습니다.

노틸러스만 인식합니다.파일 복사/잘라내기이는 노틸러스 내에서 시작됩니다.
이것은 정확히 당신이 관찰한 것입니다... 아마도 이유에 대한 설명이 있을 것입니다... 나는 Nautilus 소스 "cut-paste-code"에서 저장된 상태에 대한 많은 정보를 포함하고 있음을 발견했습니다.

# In Nautilus, manually "copy" a file (to the clipboard) using Ctrl+C

xsel -ob |xxd      # hex-display clipboard contents of the clipboard
echo "### At this point, Nautilus **paste** works."
read               # pause
xsel -ob |xsel -ib # Replace clipboard with itself
xsel -ob |xxd      # hex-display clipboard contents again
echo "### At this point, Nautilus **paste** does NOT work."

수동으로 복사/잘라낸 후(노틸러스 또는 다른 곳에서) Ctrl+V를 수행할 수 있는 작업은 무궁무진합니다.반죽노틸러스에서 작동하지만 클립보드를 수정하면 "붙여넣기"가 되지 않습니다...

답변2

노틸러스에서 파일을 클립보드에 "복사"할 때 실제로 수행하는 작업은 클립보드에 절대 파일 경로를 넣는 것뿐입니다(클립보드 관리자를 사용하여 이를 확인할 수 있습니다). 따라서 스크립트를 통해 파일 경로를 클립보드에 넣으면 원하는 결과를 얻을 수 있습니다. 시도 해봐!

관련 정보