명령줄에서 클립보드로 파일 복사

명령줄에서 클립보드로 파일 복사

GUI 파일 관리자에서 여러 파일을 선택하고 Ctrl-C(파일에 대한 정보를 클립보드에 복사)를 누른 다음 다른 폴더로 이동하고 Ctrl-V를 누른 다음 파일을 해당 디렉토리에 복사할 수 있습니다. 폴더.

실험적으로 파일 관리자에서 파일을 복사한 후 텍스트 편집기로 전환할 수 있습니다. Ctrl-V를 눌러 절대 파일 이름 목록을 붙여넣습니다. 반대 프로세스(텍스트 편집기에서 파일 목록을 복사하여 파일 관리자에 붙여넣기)가 작동하지 않습니다. 아마도 다른 이유 때문일 것입니다.목표 원자

이 연습의 목표는 명령줄에서 일부 파일을 복사할 수 있는 것입니다.

find ${PWD} -name "*.txt" | xclip <magic parameters>

그런 다음 파일 관리자로 전환하고 파일->붙여넣기를 사용하여 모두 디렉터리에 복사합니다.

따라서 질문은 다음과 같습니다. xclip파일 관리자가 선택 항목을 파일 목록으로 인식하고 "붙여넣기" 메뉴 항목을 활성화하려면 어떤 매개변수를 지정해야 합니까(또는 다른 프로그램에)?

또는 X가 선택한 항목의 내용을 검사하고 현재 포함된 데이터를 확인할 수 있는 하위 수준 도구가 있습니까?

답변1

예, 기본적으로 다음과 같이 클립보드 선택 기능을 제공해야 합니다.

  • text/uri-list내용은

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselection또는 x-special/gnome-copied-files내용 copy\nfile://$path1\nfile://$path2\0또는cut\nfile://$path1\nfile://$path2...\0

다음과 같은 방법으로 xclip이를 달성 할 수 있습니다.

find "$PWD" -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

나도 이걸 찾았어로리카르프명령이 유망해 보이지만 값을 검색할 수는 있지만 해당 값을 저장하고 성공적으로 검색할 수는 loliclip없습니다 pcmanfm.

또한 몇 줄의 코드로 이를 구현할 수도 있습니다 perl-tk.

답변2

이러한 답변을 바탕으로 filetoclip명령줄에 지정된 파일을 클립보드에 복사하는 Python 스크립트를 작성했습니다.

본질적으로 필요한 것은 이를 해결하고 "이상한" 문자를 클립보드에 복사하기 전에 퍼센트 인코딩하는 것입니다. xclipPython에서 직접 클립보드를 사용하는 것은 예상보다 더 고통스럽기 때문에 실제 클립보드 작업은 위임됩니다 .

#!/usr/bin/env python3
import os.path
import sys
from urllib.parse import quote
from subprocess import run
out = [os.fsencode('file://' + quote(os.path.abspath(x))) for x in sys.argv[1:]]
run(['xclip', '-i', '-selection', 'clipboard', '-t', 'text/uri-list'],
    input=b'\n'.join(out), check=True)

답변3

find당신을 위해 그것을하지 않습니까?

find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &

편집: 내가 이해하는 한 man xclip: 파일이나 디렉토리가 아닌 텍스트만 처리합니다.

관련 정보