लिनक्स के लिए OSX की pbcopy की तरह क्या है


141

OSX में एक टर्मिनल में मैं आउटपुट को pbcopy पर पाइप कर सकता हूं और फिर एक वेब ब्राउज़र में जाकर पेस्ट कर सकता हूं। मैंने लिनक्स में xcopy के साथ इसकी कोशिश की थी, लेकिन जब मैं ब्राउज़र पर स्विच करता हूं तो यह क्लिपबोर्ड को ओवरराइट कर देता है, जिसमें पिछली बार ब्राउज़र का उपयोग किया गया था। लिनक्स में pbcopy की तरह क्या काम करता है?


2
... और उन क्या pbcopy है पता नहीं है कि के लिए, यहाँ आदमी पृष्ठ है developer.apple.com/library/mac/#documentation/Darwin/Reference/...
रोब कॉवेल

एक टूल जो इसके साथ मददगार हो सकता है वह है क्लिप इट (और इसी तरह के क्लिपबोर्ड मैनेजर)। न केवल यह टर्मिनल में अच्छी तरह से खेलता है, यह क्लिपबोर्ड इतिहास को भी संरक्षित करता है। बहुत उपयोगी।
०४ पर ब्रांडज़ी

जवाबों:


162

अगर आपने X स्थापित किया है तो आप इस तरह से xsel आज़मा सकते हैं:

alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'

या xclip के साथ:

alias pbcopy='xclip -selection clipboard'
alias pbpaste='xclip -selection clipboard -o'

अब आप उपयोग कर सकते हैं:

echo 'go to my clipboard' | pbcopy

जब मेरे पास XI का उपयोग नहीं होता है तो कीबोर्ड का उपयोग करके सत्र में खुले गोले के बीच कॉपी करने के लिए GNU स्क्रीन की कार्यक्षमता

प्रतिलिपि बनाना : Ctrl-a -> Esc -> go to wanted position * -> Space (to begin selecting) -> press k to go forward mark text -> Enter

चिपकाना : Ctrl-a + ]

* आंदोलनों को प्रमुख बाइंडिंग (जे, के, एलएंडएम) जैसे विम के साथ किया जाता है।


1
धन्यवाद यह ठीक वही जानकारी है जो मैं चाहता था। अब मुझे आश्चर्य है कि अगर कोई ऐसा तरीका है जिससे मैं स्क्रीन बना सकता हूं तो मुझे उस क्षेत्र का चयन करने के लिए Emacs कमांड का उपयोग करना चाहिए जिसे मैं कॉपी करना चाहता हूं ...
Noah Sussman

8
xsel: प्रदर्शन नहीं खोल सकता: (अशक्त): डिवाइस के लिए अनुपयुक्त ioctl
इसका 16

मैंने Xming को स्थापित करके और DISPLAY =: 0
scottgwald

1
Tmux उपयोगकर्ताओं के लिए, यह अधिक पसंद है Ctrl-b, [ -> go to position -> Space -> select texts -> Enterऔर इसके द्वारा पेस्टCtrl-b, ]
el que m'est

जब भी संभव हो - यदि यह कुछ ऐसा है जो आप चाहते हैं, तो निश्चित रूप से - अपनी प्रोफाइल में उपनाम के साथ अपने नाम स्थान को जटिल करने के बजाय , इसके लिए एक मूल स्क्रिप्ट बनाने के लिए बेहतर होगा /bin/खासकर यदि आप macOS और linux मशीनों के बीच अपनी प्रोफ़ाइल साझा करते हैं।
बेंजामिन आर

9

इस स्क्रिप्ट को अपने बिन फ़ोल्डर में pbcopy कहा जाता है:

#!/bin/bash
xclip -i -sel c -f |xclip -i -sel p

यह आपके चयन बफर और क्लिपबोर्ड दोनों में STDIN डाल देगा:

echo Hello world |pbcopy

catजरूरत क्यों पड़ेगी? क्या इस मामले में केवल इस तरह से बेकार की गाली देना या मुझे कुछ याद आ रहा है, क्या इस मामले में स्टडआउट को पुनर्निर्देशित नहीं किया जाएगा?
हॉल्टनर

2
आप सही कह रहे हैं कि यह बेकार बिल्ली का दुरुपयोग लगता है :-)
एरिक

2
यदि आप (मेरे जैसे) रहस्यमय "बेकार बिल्ली" के बारे में सोच रहे हैं, तो इसे संपादित द्वारा हटा दिया गया है। एनटीएस: भ्रामक टिप्पणियों के मामले में, इतिहास की जाँच करें ^ ^ '
yaitloutou

इसका उपयोग करने के बाद आप सामग्री को कैसे चिपकाएँगे? बस का उपयोग कर xclip -o? या कोई बेहतर तरीका है?
n1k31t4

@ n1k31t4 मैंने जो किया वह एक स्क्रिप्ट का उपयोग करने के xclip -sel c -oलिए एक समान स्क्रिप्ट बनाने के लिए किया गया था /bin/pbpaste
बेंजामिन

5

@ एरिक और @xpixelz के समाधान पर विस्तार करने के लिए; इन दो लिपियों को दोनों प्लेटफार्मों पर काम करना चाहिए:

pbcopy:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  cat | /usr/bin/pbcopy
else
  # copy to selection buffer AND clipboard
  cat | xclip -i -sel c -f | xclip -i -sel p
fi

pbpaste:

#!/bin/bash
__IS_MAC=${__IS_MAC:-$(test $(uname -s) == "Darwin" && echo 'true')}
if [ -n "${__IS_MAC}" ]; then
  /usr/bin/pbpaste
else
  xclip -selection clipboard -o
fi

लेकिन आपके पास यह स्क्रिप्ट OS X पर भी क्यों होगी जहां यह मूल उपयोगकर्ताभूमि का एक हिस्सा है?
हल्टनर

इसी तरह की कार्यक्षमता के लिए एक संदर्भ के रूप में, * क्रॉस-प्लेटफ़ॉर्म डॉटफ़ाइल्स: github.com/westurner/dotfiles/blob/develop/scripts/pbcopy
वेस टर्नर

अभी भी बिल्ली के साथ दुर्व्यवहार और यह जांचना क्यों नहीं है कि क्या इसके बजाय एक्लिप्स मौजूद है और यदि यह करता है तो एक उपनाम आवंटित करें? या जाँच करें कि क्या pbpaste बाइनरी मौजूद है एक विकल्प भी होगा। अनाम की जाँच करना समस्या के लिए एक अजीब दृष्टिकोण की तरह लगता है।
हॉल्टनर

2
@Hultner "नाम की जाँच करना समस्या के लिए एक अजीब दृष्टिकोण की तरह लगता है" आप बायनेरिज़ के लिए भी जांच कर सकते हैं, अधिमानतः, क्रम में ${a:-${b:-${c:+${d}}}}और कुछ type -P/ hasचर असाइनमेंट और / बिन / टेस्ट के साथ अपवाद को निष्पादित करता है।
वेस टर्नर

2

यह उत्तर विंडोज के लिए लिनक्स सबसिस्टम को संदर्भित करता है।

संक्षिप्त उत्तर: उपयोग करें clip.exeजैसे कि यह pbcopyविंडोज क्लिपबोर्ड पर कुछ डालने के लिए था। यह जादू है। उदाहरण echo "Hello Windows" | clip.exeमें अपने bash या Ubuntu bash टर्मिनल, और फिर विंडोज प्रोग्राम में `ctrl-v '।

अधिक संदर्भ:

में एक टिप्पणी के ऊपर मैंने कहा कि, जब विंडोज पर Xming का उपयोग कर इस कार्यप्रणाली को सक्षम करने, यह एक प्रदर्शन चर (स्थापित करने के लिए आवश्यक है export DISPLAY=:0से पहले, कई मामलों में) xselऔर xclipसमाधान काम करते हैं। स्वाभाविक रूप से, यह समाधान एक अविश्वसनीय, स्टोकेस्टिक तरीके से काम करता है - जब लिनक्स से विंडोज पर पेस्ट किया जाता है, तो ctrl-vएक और दस बार के बीच दबाने पर क्लिपबोर्ड को चिपकाया जाता है (एक बार) (यह मेरी विंडोज 10 सरफेस बुक 2 पर है)। अपना समय बर्बाद मत करो, उपयोग करें clip.exe

नोट: मत भूलना .exe। अन्यथा उबंटू बैश सुझाव देगा कि आप लिनक्स पैकेज स्थापित करें geomview, जो आप चाहते हैं वह नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.