Bir dosyanın içeriğini, içeriğini görüntülemeden panoya kopyalayın


67

Dosya içeriğini görüntülemeden UNIX'te bir dosyanın içeriğini kopyalama. İçeriğini görmek için kedi ya da vi istemiyorum.

Onları panoya kopyalamak istiyorum, böylece pencerelerimi not defterime geri yapıştırabilirim.

Erişim kısıtlamaları nedeniyle dosyayı bu sunucudan diğerine kopyalayamıyorum.


Bir dosyanın içeriğine açmadan erişemezsiniz ...
123

Tamam, öyleyse, çok büyük bir dosyayı kopyalamak için kolay bir yol var. 1000 çizgim var.
Web Nash,

eğer dosyanız çok büyükse, pano yine de başarısız olacaktır. Erişim kısıtlamaları dosyayı okuyamayacağınızı söylediğinde, elbette kayboldunuz. Dosyayı yazamadığınız için dosyayı kopyalayamıyorsanız, kendinize sormalısınız, yazabileceğiniz başka bir hedef varsa.
ikrabbe

Çok büyük. 1000 satır. Birini seç.
123

2
BTW bir windows not defteri nedir ?
Stéphane Chazelas

Yanıtlar:


77

X11

X11 (geleneksel Unix veya Linux tabanlı sistemlerde en yaygın GUI) kullanıyorsanız, bir dosyanın içeriğini görüntülemeden X11 CLIPBOARD seçimine kopyalamak için xclipveya xselyardımcı programını kullanabilirsiniz .

xclip -sel c < file

Veya:

xsel -b < file

fileCLIPBOARD X11 seçiminin içeriğini saklamak için .

UTF-8 kodlaması kullanılarak kaydedilmesi gerektiğini unutmayın, aksi takdirde yapıştırma işlemi düzgün çalışmaz. Eğer filebir başka karakter kümesi kullanılarak kodlanır, sen ilk UTF-8'e dönüştürmek gibi olmalıdır:

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

Latin1 / iso8859-1 ile kodlanmış bir dosya için .

(O hala gibi bazı uygulamalar tarafından sorgulanan bir CUT_BUFFER olarak saklamak için xtermmuhtemelen istemeyecektir olsa, hiçbir şey panoya veya İLKÖĞRETİM X seçimleri iddia ve işlem seçimleri için gibi hizmet etmek çalışıyor olması gerekmez olduğunda) veya bu günlerde kullanmanız gerekir:

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

(sondaki yeni satır karakterlerini kaldırır file).

GNU ekranı

GNU screen, readbufbir dosyanın içeriğini kendi kopyala-yapıştır arabelleğine (yapıştırdığınız ^A]) bulamaç haline getirir . Yani:

screen -X readbuf file

Apple OS / X

Apple OS / X , X11'i kullanabilmesine rağmen . Bir X11 uygulaması çalıştırmadığınız sürece varsayılan olarak değil. OS / X, X11 CLIPBOARD seçimini OS / X çalışma alanı arabellekleriyle senkronize etmesi gerektiği için kullanabilir xclipveya xselorada kullanabilirsiniz ; ancak bu, X11 sunucusunu sadece bunun için başlatmak için biraz israf olur.

OS / X'te, pbcopykeyfi içeriği çalışma alanı arabelleklerine depolamak için bu komutu kullanabilirsiniz :

pbcopy < file

(dosyanın karakter kodlaması yerel ayarın olması bekleniyor).

kabuklar

Çoğu kabuğun kendi kopyala yapıştır tamponları vardır. Emacs modunda, kopyala ve kopyala işlemleri kopyalanan / kesilen metni, kopyaladığınız / yapıştırdığınız bir yığında saklar ve Ctrl-YbirlikteAlt+Y

zsh KESICI / öldürme

Burada zsh, değişken değişkende $killringyığında dizide ve yığında depolanır, $CUTBUFFERancak bu değişkenler yalnızca Zsh Line Editor (zle) widget'larından kullanılabilir ve birkaç özel pencere de bunları yönetmenin tercih edilen yoludur.

Bunlar yalnızca ZLE üzerinden kullanılabildiğinden, komutlarla yapmak biraz sarsılmış olur:

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Özel Widget her yeni komut istemine başlangıcında bir kez gerçekleştirilir. Bunun anlamı, dosyanın yalnızca bir sonraki istemde kopyalanacağıdır. Örneğin, eğer:

file-copy file; sleep 2

Dosya sadece bu 2 saniyeden sonra kopyalanacaktır.


3
Bu hatayla karşı karşıyayım:Error: Can't open display: (null)
Marcelo Filho

Burada aynı sorun fedora 7
Michael Pacheco,

@MarceloFilho xclipve xselX11 yardımcı programlarıdır, X11 seçimlerini düzenlerler, böylece yalnızca $DISPLAYayarlanmış olan bir X11 ortamında kullanılabilirler .
Stéphane Chazelas

2

Belki bunu sormak istedin . Ancak okumak istediğiniz herhangi bir dosya bir sistem çağrısı tarafından açılmalıdır. Bir dosyaya erişiminiz yoksa okuyamazsınız. Sınırlı erişim fikri budur.


Peki asıl problemin ne? Okuyabilir ancak kopyalayamıyorsanız, yazamayabilirsiniz. Ancak kopyalamak istediğinizde verileri bir yere yazmanız gerekir.
ikrabbe

teşekkür ederim!!! hayatımı kurtardın)
Alena Kastsiukavets

0

X11'i kullanarak:

xclip -o > file

Dosyayı okuyabilirseniz erişim sorunu hedef sunucu ile ilgilidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.