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


66

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

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

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


파일을 열지 않고는 파일 내용에 액세스 할 수 없습니다 ...
123

그렇다면 아주 큰 파일을 쉽게 복사 할 수있는 방법이 있습니다. 나는 1000 줄을 얻었다.
웹 내쉬

파일이 크면 클립 보드에 오류가 발생합니다. 액세스 제한에 따라 파일을 읽을 수 없다고 말하면 물론 손실됩니다. 파일을 쓸 수 없어서 파일을 복사 할 수없는 경우 다른 대상을 쓸 수 있는지 직접 확인해야합니다.
ikrabbe 2016 년

매우 큽니다. 1000 줄 하나를 선택.
123

2
Windows 메모장 BTW 란 무엇입니까 ?
Stéphane Chazelas 2016 년

답변:


77

X11

X11 (전통적인 Unix 또는 Linux 기반 시스템에서 가장 일반적인 GUI)을 사용하는 경우 파일의 내용을 표시 하지 않고 X11 CLIPBOARD 선택 항목으로 복사 하려면 xclip또는 xsel유틸리티를 사용할 수 있습니다 .

xclip -sel c < file

또는:

xsel -b < file

fileCLIPBOARD X11 선택 의 내용을 저장합니다 .

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

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

latin1 / iso8859-1로 인코딩 된 파일의 경우 .

CUT_BUFFER로 저장하려면 (CLIPBOARD xterm또는 PRIMARY X 선택을 요구하는 항목이없고 선택을 위해이를 처리하기 위해 프로세스를 실행할 필요가없는 경우 와 같은 일부 응용 프로그램에서 여전히 쿼리 됨 ) 요즘 그것을 사용해야합니다 :

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

에서 후행 줄 바꿈 문자를 제거합니다 file.

GNU 화면

GNU screenreadbuf파일의 내용을 자체 복사-붙여 넣기 버퍼 (으로 붙여 넣기 ^A])에 넣는 명령을 가지고 있습니다. 그래서:

screen -X readbuf file

애플 OS / X

Apple OS / X X11 사용할 있지만 X11 응용 프로그램을 실행하지 않으면 기본적으로 사용되지 않습니다. 당신은 사용할 수있을 것 xclip또는 xsel이 같은 OS / X OS / X 보오드 버퍼와 X11 클립 보드 선택을 동기화해야합니다,하지만 그건 단지의 X11 서버를 시작하는 폐기물의 비트 것입니다.

OS / X 에서이pbcopy 명령을 사용하여 임의의 컨텐츠를 페이스트 보드 버퍼 에 저장할 수 있습니다 .

pbcopy < file

(파일의 문자 인코딩은 로케일의 문자 인코딩이어야합니다).

포탄

대부분의 쉘에는 자체 복사-붙여 넣기 버퍼가 있습니다. 이맥스 모드에서, 절단 작업 복사 / 절단 당신이 / 꺼낼와 붙여 넣기 스택에 텍스트 저장 복사 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 초 후에 파일이 복사됩니다.


3
이 오류에 직면하고 있습니다 :Error: Can't open display: (null)
Marcelo Filho

페도라 7에서 동일한 문제
Michael Pacheco

@MarceloFilho, xclipxsel그들이 X11 선택 조작, X11 유틸리티이므로 단지 X11 환경에서 사용될 수있는 $DISPLAY설정된다.
스테판 Chazelas

2

아마도 당신은 이것을 물어보고 싶을 것 입니다. 그러나 읽으려는 파일은 시스템 호출로 열어야합니다. 파일에 액세스 할 수 없으면 읽을 수 없습니다. 이것이 접근 제한이라는 개념입니다.


실제 문제는 무엇입니까? 읽을 수는 있지만 복사 할 수없는 경우 글을 쓰지 못할 수 있습니다. 그러나 복사하려는 경우 데이터를 어딘가에 작성해야합니다.
ikrabbe 2016 년

감사합니다!!! 당신은 내 생명을 구했습니다)
Alena Kastsiukavets

0

X11 사용 :

xclip -o > file

파일을 읽을 수 있으면 액세스 문제는 대상 서버에 관한 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.