내용을 표시하지 않고 파일 내용을 클립보드에 복사합니다.

내용을 표시하지 않고 파일 내용을 클립보드에 복사합니다.

파일 내용을 표시하지 않고 UNIX에서 파일 내용을 복사하는 방법. 콘텐츠를 보기 위해 cat이나 vi를 사용하고 싶지 않습니다.

Windows 메모장에 다시 붙여넣을 수 있도록 클립보드에 복사하고 싶습니다.

액세스 제한으로 인해 이 서버에서 다른 서버로 파일을 복사할 수 없습니다.

답변1

X11

X11(기존 Unix 또는 Linux 시스템에서 가장 일반적인 GUI)을 사용하는 경우 파일 내용을 X11 CLIPBOARD 선택 항목에 복사할 필요가 없습니다.보여주다사용하거나 xclip유틸리티 를 사용할 수 있습니다 xsel.

xclip -sel c < file

또는:

xsel -b < file

콘텐츠를 fileCLIPBOARD X11 선택 항목으로 저장합니다.

명령의 출력을 저장합니다.

mycommand | xclip -sel c
mycommand | xsel -b

UTF-8 인코딩을 사용하여 저장해야 합니다. 그렇지 않으면 붙여넣기가 제대로 작동하지 않습니다. 다른 문자 집합을 사용하여 인코딩 하는 경우 file먼저 UTF-8로 변환해야 합니다. 예를 들면 다음과 같습니다.

<file iconv -f latin1 -t utf8 | xclip -sel c

다음으로 인코딩된 파일의 경우라틴어 1/ISO8859-1.

xsel이진 데이터에는 작동하지 않지만(널 바이트는 허용되지 않음) xclip작동합니다.

이를 CUT_BUFFER로 저장합니다(예를 들어 CLIPBOARD 또는 PRIMARY를 선언하지 않은 경우와 같이 일부 응용 프로그램은 여전히 ​​이러한 버퍼를 쿼리합니다. xterm이제 이를 사용해야 합니다.

xprop -root -format CUT_BUFFER0 8s -set CUT_BUFFER0 "$(cat file)"

(후행 줄 바꿈을 제거하십시오 file).

GNU 화면

GNU에는 파일 내용을 자체 복사-붙여넣기 버퍼에 넣는 명령이 screen있습니다 (붙여넣기에 사용 ). 그래서:readbuf^A]

screen -X readbuf file

애플 OS/X

비록 애플 OS/X할 수 있는X11을 사용하세요. X11 응용 프로그램을 실행하지 않는 한 기본적으로는 그렇지 않습니다. OS/X는 X11 CLIPBOARD 선택을 OS/X 페이스트보드 버퍼와 동기화해야 하기 때문에 xclip또는 거기를 사용할 수 있지만 xsel이를 위해 X11 서버를 시작하는 것은 약간 낭비입니다.

OS/X에서는 다음을 사용할 수 있습니다.pbcopy임의의 콘텐츠를 저장하는 명령판지완충기:

pbcopy < file

(파일의 문자 인코딩은 로캘의 문자 인코딩과 같아야 합니다.) 명령의 출력을 저장합니다.

mycommand | pbcopy

껍데기

대부분의 쉘에는 자체 복사-붙여넣기 버퍼가 있습니다. Emacs 모드에서 잘라내기 및 복사 작업은 복사/잘라낸 텍스트를 스택에 저장합니다. 이를 사용하여 끌어서 붙여넣은 Ctrl-Y다음 다음을 사용하여 순환할 수 있습니다.Alt+Y

zsh CUTBUFFER/킬링

에서 zsh스택은 $killring배열에 저장되고 스택 상단은 $CUTBUFFER변수에 저장됩니다. 하지만 이러한 변수는 Zsh 라인 편집기(zle) 위젯에서만 사용할 수 있으며 일부 특수 위젯은 이러한 변수를 조작하는 데 선호되는 방법입니다.

이는 ZLE를 통해서만 사용할 수 있으므로 명령을 사용하여 이 작업을 수행하는 것은 약간 복잡합니다.

zmodload zsh/mapfile
zle-line-init() {
  if [ -n "$FILE_TO_COPY" ]; then
    zle copy-region-as-kill $mapfile[$FILE_TO_COPY]
    unset FILE_TO_COPY
  fi
}

zle -N zle-line-init
file-copy() FILE_TO_COPY=$1:A       

특별한 zle-line-init위젯은 각각의 새로운 명령 프롬프트가 시작될 때 한 번씩 실행됩니다. 이는 파일이 다음 프롬프트에서만 복사된다는 것을 의미합니다. 예를 들어 다음을 실행하는 경우:

file-copy file; sleep 2

2초 후에 파일이 복사됩니다.

답변2

어쩌면 이렇게 묻고 싶을 수도 있겠네요. 하지만 읽고 싶은 파일은 시스템 호출을 통해 열어야 합니다. 파일에 대한 액세스 권한이 없으면 읽을 수 없습니다. 접근을 제한한다는 생각이다.

답변3

내 솔루션이 내 설정에만 해당될 수도 있지만 다른 사람에게 도움이 되는지 확인하기 위해 여기에 게시하겠습니다.

로컬(OSx) 컴퓨터의 "클립보드"에 저장하여 로컬로 붙여 넣을 수 있는 파일이 있는 (Linux) 서버에 대한 SSH 액세스 권한이 있습니다.

~에서현지의머신에서 다음 명령을 실행합니다.

$ ssh user@host 'cat /path/to/file/I/want/in/remote/system' | pbcopy 

이제 파일 내용이 로컬 버퍼에 있으므로 원하는 애플리케이션에 붙여넣을 수 있습니다. 이렇게 하면 파일 내용이 화면에 표시되지 않고 내용이 ssh를 통해 전송되므로 scp를 통해 파일을 복사하는 것만큼 안전해야 합니다(개인 정보 보호/보안 문제가 있는 경우). )

답변4

xclip을 설치하고 파일 이름을 인수로 사용하는 "copy"라는 스크립트를 만들었습니다.

#! /bin/sh -
exec xclip -selection clipboard -i "$@"

사용 예: copy id_rsa.pub내 공개 키를 클립보드에 복사합니다.

관련 정보