
파일 내용을 표시하지 않고 UNIX에서 파일 내용을 복사하는 방법. 콘텐츠를 보기 위해 cat이나 vi를 사용하고 싶지 않습니다.
Windows 메모장에 다시 붙여넣을 수 있도록 클립보드에 복사하고 싶습니다.
액세스 제한으로 인해 이 서버에서 다른 서버로 파일을 복사할 수 없습니다.
답변1
X11
X11(기존 Unix 또는 Linux 시스템에서 가장 일반적인 GUI)을 사용하는 경우 파일 내용을 X11 CLIPBOARD 선택 항목에 복사할 필요가 없습니다.보여주다사용하거나 xclip
유틸리티 를 사용할 수 있습니다 xsel
.
xclip -sel c < file
또는:
xsel -b < file
콘텐츠를 file
CLIPBOARD 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
내 공개 키를 클립보드에 복사합니다.