বাশ স্ক্রিপ্টে ক্লিপবোর্ডে / থেকে পাইপ


945

বাশে ক্লিপবোর্ডে / থেকে পাইপ দেওয়া কি সম্ভব?

এটি ডিভাইস হ্যান্ডেলটিতে / থেকে পাইপিং করছে বা সহায়ক অ্যাপ্লিকেশন ব্যবহার করছে, আমি কিছুই খুঁজে পাচ্ছি না।

উদাহরণস্বরূপ, যদি /dev/clipকোনও ডিভাইস যদি আমরা ক্লিপবোর্ডের সাথে সংযোগ করতাম তবে:

cat /dev/clip        # Dump the contents of the clipboard
cat foo > /dev/clip  # Dump the contents of "foo" into the clipboard

3
আমি :%y+ভিমে ব্যবহার করছি , যা 'ইয়ঙ্ক (অনুলিপি) সমস্ত লাইন' + 'রেজিস্ট্রারে (এক্স PRIMARYক্লিপবোর্ড) "এর জন্য বলি v আপনি %সুনির্দিষ্ট হতে চাইলে কোনও ব্যাপ্তির সাথে প্রতিস্থাপন করতে পারেন। তবে এখানে তিনটি সতর্কতা রয়েছে: ১. এখন, কোনও ফাইল অনুলিপি করার আগে আপনাকে যা কিছু পাঠ্য সংরক্ষণ করতে হবে। এটি xclipউত্তরে বর্ণিত আদেশের বিপরীতে । ২. আপনি যদি ইতিমধ্যে ভিএম করতে না জানেন তবে এটি ক্লান্তিকর হতে পারে। ৩. আপনি কেবলমাত্র এটি করতে পারবেন যদি ভিএম সংকলন করার সময় কোনও নির্দিষ্ট বৈশিষ্ট্য সক্ষম থাকে। আপনি যদি জিভিআইএম ইনস্টল করেন, এটি জিএমআই এবং ভিআইএম এর টার্মিনাল উভয় ক্ষেত্রে ডিফল্টরূপে সক্ষম করা উচিত।
ব্র্যাডেন সেরা

1
@ ব্র্যাডেনবেস্ট আপনার উত্তর হিসাবে এটি করা উচিত। আমি একটি এনআইএক্স পরিবেশে আছি এবং ইনস্টল করতে অক্ষম xclip। আপনার উত্তর একটি কবজ মত কাজ করে।
হ্যাঙ্ককা

@ হ্যাঙ্ককা ঠিক আছে, আমি একটি উত্তর পোস্ট করেছি । আমাকে বল তুমি কি ভাবছ.
ব্র্যাডেন সেরা

@ ব্র্যাডেনবেস্ট এটির একটি বিস্তৃত উত্তর। আমি কেবল একটি পছন্দ :%y+করেছি তবে ঠিক আছে, আপনি সমস্ত ঘাঁটি কভার করেছেন! ভাল একটা.
হ্যাঙ্ককা 15'17

অন্য বিকল্প: একটি সামান্য পার্ল স্ক্রিপ্ট ব্যবহার করে: কোনও ইনস্টলেশন প্রয়োজন require দেখুন নিচের আমার উত্তর
ভোনসি

উত্তর:


861

এমন একটি ক্লিপবোর্ড রয়েছে যা আপনি মোকাবেলা করতে পারেন। আমি আশা করি আপনি সম্ভবত একটি লিনাক্স ব্যবহারকারী যিনি এক্স উইন্ডোজ প্রাথমিক ক্লিপবোর্ডে স্টাফ রাখতে চান। সাধারণত, আপনি যে ক্লিপবোর্ডের সাথে কথা বলতে চান তার একটি ইউটিলিটি রয়েছে যা আপনাকে এটির সাথে কথা বলতে দেয়।

এক্স এর ক্ষেত্রে, xclip(এবং অন্যান্য) আছে। xclip -selection cক্লিপবোর্ড যে সঙ্গে কাজ করে তথ্য পাঠাতে হবে Ctrl + C, Ctrl + Vঅধিকাংশ অ্যাপ্লিকেশন।

আপনি যদি ম্যাক ওএস এক্সে থাকেন তবে তা আছে pbcopy

আপনি লিনাক্স টার্মিনাল মোড (কোন এক্স) আছেন, তাহলে দেখব gpmবা পর্দা যা ক্লিপবোর্ড হয়েছে। screenকমান্ড চেষ্টা করুন readreg

উইন্ডোজ 10+ বা সাইগউইনের অধীনে, /dev/clipboardবা ব্যবহার করুন clip



24
উইন্ডোজে, /dev/clipboardমাইসিস / মিনজিডাব্লু বাশ শেলের জন্যও কাজ করে
মিহাই রোটারু

71
নোট যে xclip -selection cক্লিপবোর্ডে ডেটা প্রেরণ করবে যা বেশিরভাগ অ্যাপ্লিকেশনগুলিতে ^ C, ^ V এর সাথে কাজ করে
ক্লাস ভ্যান শেহেলভেন

31
নতুন উইন্ডোজ সংস্করণগুলিতে আপনি ঠিক এটি ব্যবহার করতে পারেন clip:dir | clip
ম্যাপ

11
এটি দুঃখের বিষয় যে জিএনইউ / লিনাক্সের মতো কোনও ডিভাইস নেই /dev/clipboard, এবং কমপক্ষে কুবুন্টুতে ডিফল্টরূপে অনুপস্থিত জিপিএম উভয়ই এক্সক্লিপ ইনস্টল করতে বাধ্য করে (বেশিরভাগ অন্যান্য ডিস্ট্রোজেও আমি অনুমান করি)
হাই-এঞ্জেল

282

নিশ্চিত করুন যে আপনি ব্যবহার করছেন alias xclip="xclip -selection c" অন্যথায় যদি আপনার ইচ্ছা হয় ব্যবহার করতে পারবেন না Ctrl+ + vএটি একটি ভিন্ন ফিরে জায়গায় পেস্ট করুন।

echo test | xclip    

Ctrl+ +v === test


1
কিভাবে এই আদেশ আর্গুমেন্ট ছাড়া এটি আটকানো সম্পর্কে যেতে হবে ?
জোনাহ

15
xclip -selection clipboard -o
ডগ

32
যেহেতু আমি ওএসএক্স এবং লিনাক্সের মধ্যে অনেকগুলি পিছনে পিছনে যাই আমার ডটফাইলে আমার নিম্নলিখিতগুলি থাকে। alias pbcopy="xclip -selection c" alias pbpaste="xclip -selection clipboard -o" আশা করি এইটি কাজ করবে.
ডগ

15
@ অ্যাপোকফফর্ক, xclipএকটি নতুন লাইন যুক্ত করছে না, echoএটি। ব্যবহার করে দেখুন printf test | xclip -i -selection clipboard। ( printfআপনি না লিখে একটি নতুন লাইন যুক্ত করবেন না 'test\n'))
ডেভিড এক্স

7
বা এর echo -nপরিবর্তে ব্যবহার করুন printf
খ্রিস্টান পাইটস

182

ইনস্টল করুন

# You can install xclip using `apt-get`
apt-get install xclip

# or `pacman`
pacman -S xclip

# or `dnf`
dnf install xclip

আপনার যদি না অ্যাক্সেস না থাকে এবং apt-getনা pacman, dnfউত্সগুলি সোর্সফোজে উপলব্ধ ।

সেট-আপ

সজোরে আঘাত

ইন ~/.bash_aliases, যোগ করুন:

alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"

. ~/.bash_aliasesআপনার প্রোফাইল ব্যবহার করে বা পুনরায় চালু করে আপনার নতুন কনফিগারেশনটি লোড করতে ভুলবেন না ।

মাছ

ইন ~/.config/fish/config.fish, যোগ করুন:

abbr setclip "xclip -selection c"
abbr getclip "xclip -selection c -o"

পরিবর্তনগুলি প্রয়োগের জন্য আপনার টার্মিনালটি পুনরায় চালু করে আপনার মাছের পুনরায় চালু করতে ভুলবেন না।

ব্যবহার

আপনি এখন ব্যবহার করতে পারেন setclipএবং getclip, যেমন:

$ echo foo | setclip
$ getclip
foo

3
সব অন্যান্য ডিস্ট্রো জন্য: আপনার কাছ থেকে উৎস বিনামূল্যে ডাউনলোড করতে পারেন sourceforge.net/projects/xclip
Scz

+1 সেরা সমাধান! আর্ক ইন sudo pacman -S xclip,। তবে মনে রাখবেন যে .bashrcএটি সেরা জায়গা নয়। আমি এন্ডুয়েসারকে যথাযথ বাশার্ক, ব্যাশ_লিয়াসেস এবং। প্রোফাইল ফাইল এবং কীভাবে প্রতিটি ব্যাশ পরিচালনা করে তা পড়ার পরামর্শ দিচ্ছি। পরামর্শ: পরিবর্তে এটি .বাশ_আলিয়াসে রাখুন।
eduncan911

1
ধন্যবাদ @ eduncan911! :) pacmanপ্যাকেজ ম্যানেজার ব্যবহারের বিকল্প যুক্ত করেছে এবং .bashrcপ্রস্তাবটি সরিয়ে দিয়েছে । আমি জানি .bash_aliasesআরও অভিযোজিত, তবে শেষ ফলাফলটি একই ( এটি উপস্থিত থাকলে .bashrcকেবল প্রয়োজন .bash_aliases)। লোকেরা যদি অগোছালো সিস্টেম চায় তবে তাদের একটি রাখুক। :)
টিলেব

@ এলাদটাবাক খুশি এটির সাহায্য করেছে।
টিলেব

1
@jpaugh আপনি সঠিক আছেন শেষে আমার .bashrcউত্স .bash_aliases। ;) আমি এই পুরানো কনভেনশনটি অনুসরণ করি, যা আর্ক, উবুন্টু / ডেবিয়ান, রাস্পবেরি রূপগুলি, ম্যাকোস / ওএসএক্স এবং উইন্ডোজ বাশ জুড়ে 100% সামঞ্জস্যপূর্ণ: স্টিফ্যানলিপেন্স.নেট / মাই_ব্যাশক্র_লিয়াসস_প্রোফাইল_আর_অথার_ স্টাফ সেই কনভেনশনটির সাথে আমি সমস্ত মেশিনে একই একই ডটফিল ব্যবহার করি আমি স্পর্শ। এটি বেশ সুন্দর: github.com/eduncan911/dotfiles
eduncan911

143

ম্যাকোস-এ বিল্ট ইন pbcopyএবং pbpasteকমান্ডগুলি ব্যবহার করুন ।

উদাহরণস্বরূপ, যদি আপনি চালান

cat ~/.bashrc | pbcopy

~/.bashrcফাইলের বিষয়বস্তুগুলি Cmd+ vশর্টকাটের সাথে আটকানোর জন্য উপলব্ধ হবে ।



25

xsel দেবিয়ান / উবুন্টু / পুদিনায়

# append to clipboard:
cat 'the file with content' | xsel -ib

# or type in the happy face :) and ...
echo 'the happy face :) and content' | xsel -ib

# show clipboard
xsel -b

# Get more info:
man xsel

ইনস্টল করুন

sudo apt-get install xsel

এর থেকে কীভাবে আলাদা echo "foo" | xclip -selection c?
লিও লোপল্ড হার্টজ 준영

এই জিজ্ঞাসা উবুন্টু সম্পর্কে কয়েকটি উত্তর রয়েছে তবে প্রধানত xselএবং নাম অনুসারে ফাইল পড়তে / লিখতে পারে তা xclipবাদে প্রতিটি উপায়ে সমান xclip, তবে xselআপনি যদি কোনও ফাইল অ্যাক্সেস করতে চান তবে শেল পুনর্নির্দেশের প্রয়োজন requires
কলিন ডি বেনেট

xselস্ক্রিপ্টগুলি থেকে দুর্দান্তভাবে কাজ করছে, যখন xclip কেবলমাত্র প্রম্পট থেকে কাজ করছে। নিশ্চিত কেন।
এনভিআরএম

16

বাহ, আমি এই প্রশ্নের কত উত্তর আছে বিশ্বাস করতে পারি না। আমি বলতে পারি না যে আমি তাদের সব চেষ্টা করেছি কিন্তু আমি শীর্ষ 3 বা 4 চেষ্টা করেছি এবং তাদের মধ্যে কেউই আমার পক্ষে কাজ করে না। আমার জন্য কী কাজ করেছিল তা ডগ নামে একজন ব্যবহারকারী দ্বারা লেখা মন্তব্যের একটিতে একটি উত্তর ছিল। যেহেতু আমি এটিকে সহায়ক হিসাবে পেয়েছি তাই আমি একটি উত্তরে পুনরায় স্থির করার সিদ্ধান্ত নিয়েছি।

এক্সকপি ইউটিলিটি ইনস্টল করুন এবং আপনি যখন টার্মিনালে থাকবেন তখন ইনপুট:

কপি

Thing_you_want_to_copy|xclip -selection c

আটকে দিন

myvariable=$(xclip -selection clipboard -o)

আমি অনেকগুলি উত্তর পবপাস্তে এবং পিবিসিপি প্রস্তাবিত লক্ষ্য করেছি। যদি আপনি এই ইউটিলিটিগুলিতে থাকেন তবে কোনও কারণে সেগুলি আপনার রেপোতে পাওয়া যায় না, আপনি সর্বদা xcopy কমান্ডগুলির জন্য একটি এলিয়াস তৈরি করতে পারেন এবং তাদের পিবিপাস্ট এবং pbcopy কল করতে পারেন।

alias pbcopy="xclip -selection c" 
alias pbpaste="xclip -selection clipboard -o" 

সুতরাং এটির মতো দেখতে হবে:

Thing_you_want_to_copy|pbcopy
myvariable=$(pbpaste)

দুর্দান্ত, আপনার এলিফের অংশটি ম্যাকওএসের সাথে বেশ ভালভাবে মিলছে।
MeadowMuffins

15

2018 উত্তর

ক্লিপবোর্ড-ক্লিপ ব্যবহার করুন । এটি কোনও বাস্তব সমস্যা ছাড়াই ম্যাকস, উইন্ডোজ, লিনাক্স, ওপেনবিএসডি, ফ্রিবিএসডি এবং অ্যান্ড্রয়েডের সাথে কাজ করে।

এটি দিয়ে এটি ইনস্টল করুন:

npm install -g clipboard-cli

তাহলে আপনি করতে পারেন

echo foo | clipboard

আপনি যদি চান, আপনি যা করতে পারেন ওরফে করতে cbআপনার নিম্নলিখিত রেখে .bashrc, .bash_profileঅথবা .zshrc:

alias cb=clipboard


2
আপনি কি নিশ্চিত যে এটি নিরাপদ npmপ্যাকেজ?
জনি 10

3
@ স্টাস, আমি আশা করি, এটি সিন্ডারসোরাস ( github.com/sindresorhus ) দ্বারা তৈরি করা হয়েছে , যা সবচেয়ে নোডের অবদানকারী। তিনি আভা টেস্টিং লাইব্রেরি, এক্সো লিন্টার, ইওমান এবং অন্যান্য অসংখ্য প্রকল্পের জন্য দায়ী। তিনি এই জাতীয় অসংখ্য লাইব্রেরির জন্যও দায়ী, যা ইন্টারনেটে প্রায় প্রতিটি জেএস-ব্যবহারকারী ওয়েবসাইটে সম্মিলিতভাবে তার কোডটি রেখেছিল। এর অর্থ এটি নয় যে তিনি আপস করতে পারেন নি; কেবলমাত্র তার রেপোতে চোখের পরিমাণ এবং তার নিজস্ব খ্যাতি এটি বেশিরভাগ এলোমেলো এনপিএম পোস্টগুলির চেয়ে কম সম্ভাবনা তৈরি করে।
ইভান কনরাড

শান্ত! উবুন্টু জিএনইউ / লিনাক্সে কাজ করা যেখানে এক্সক্লিপ কাজ করছে না।
কেভিন বুচস

14

লিনাক্সের জন্য উইন্ডোজ সাব সিস্টেমে আপনি ক্লিপ.এক্সে ক্লিপবোর্ডে অনুলিপি করতে পারেন।

cat file | clip.exe

|পাইপ কমান্ডটি ব্যবহার করার বিষয়টি মনে রাখবেন । এবং কোনও >আদেশ নয়, যেহেতু এটি কার্যকর হবে না।


11

ক্লিপবোর্ডটি পড়ার জন্য ব্যাশ স্ক্রিপ্টটি ব্যবহারের জন্য প্রস্তুত যা একাধিক প্ল্যাটফর্মগুলিতে কাজ করে। আপনি কার্যকারিতা যুক্ত করলে দয়া করে এখানে স্ক্রিপ্টটি সম্পাদনা করুন (যেমন আরও প্ল্যাটফর্ম)।

#!/bin/bash
# WF 2013-10-04
# multi platform clipboard read access
# supports
#   Mac OS X
#   git shell / Cygwin (Windows)
#   Linux (e.g. Ubuntu)

#
# display an error
#
error() {
  echo "error: $1" 1>&2
  exit 1
}

#
# getClipboard
#
function getClipboard() {
 os=`uname`
      case $os in 
        # git bash  (Windows)
        MINGW32_NT-6.1)
          cat /dev/clipboard;;
        # Mac OS X
        Darwin*)
          pbpaste;;  
        # Linux 
        Linux*)
          # works only for X clipboard - a check that X is running might be due
          xclip -o;;
        *)
          error "unsupported os $os";;
      esac
}

tmp=/tmp/clipboard$$
getClipboard >$tmp
cat $tmp
# comment out for debugging
rm $tmp

ব্রুহ, এটি আসলে কাজ করে কেন এটি উত্তর নয়?
255.tar.xz

9

উইন্ডোজে (সাইগউইনের সাথে) চেষ্টা করুন cat /dev/clipboardবা এই নিবন্ধে echo "foo" > /dev/clipboardউল্লিখিত হিসাবে ।


1
ব্যবহারকারী @ ম্যাপ পৃথক মন্তব্যে উল্লিখিত হিসাবে উইন্ডোজের নতুন সংস্করণগুলি (আমি কেবল উইন 10 এর জন্য নিশ্চিত করতে পারি) কেবল পাইপ করতে পারে clip। আমি msysgit 1.9.5 ব্যবহার করছি এবং এটি কাজ করেছে।
শান এরউখার্ট

echo "foo" > /dev/clipboardপুরোপুরি
নিউলাইনগুলি

9

শুধুমাত্র ম্যাকের জন্য:

echo "Hello World" | pbcopy
pbpaste

এগুলি অবস্থিত /usr/bin/pbcopyএবং /usr/bin/pbpaste


8

লিনাক্সে বিভিন্ন ক্লিপবোর্ড রয়েছে; এক্স সার্ভারে একটি রয়েছে, উইন্ডো ম্যানেজারের অন্য একটি থাকতে পারে, ইত্যাদি standard কোনও মানক ডিভাইস নেই।

ওহ, হ্যাঁ, সিএলআই-তে স্ক্রিন প্রোগ্রামটির নিজস্ব ক্লিপবোর্ড রয়েছে, যেমন ইমাকস এবং ভিআইয়ের মতো আরও কিছু অ্যাপ্লিকেশন ।

এক্স-এ, আপনি এক্সক্লিপ ব্যবহার করতে পারেন ।

আপনি অন্যান্য সম্ভাব্য উত্তরের জন্য এই থ্রেডটি চেক করতে পারেন: http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2004-07/0919.html


2
দেখে মনে হচ্ছে / dev / clip তৈরি করা কারওর জন্য ভাল প্রকল্প হবে project
টেড

2
আমি একাধিক ক্লিপবোর্ড সম্পর্কে পুরোপুরি সচেতন। এটি কীভাবে আমার প্রশ্নের উত্তর দিতে আরও কঠিন করে তোলে?
মoinনুদিন

ক্লিপবোর্ডগুলি মানসম্মত করা থাকলে, আপনি যদি / dev / clip1, / ​​dev / clip2 ব্যবহার করতে পারতেন তবে সম্ভবত ক্ষতি হবে না তা বোঝা যাবে, কেবলমাত্র তারা হ'ল ব্যবহারকারী নির্দিষ্ট এবং ডিভাইসগুলি সিস্টেম-ব্যাপী। তবে আপনি যদি কোনও কার্নেল ডিভাইস ড্রাইভার তৈরি করেন যা অ্যাক্সেসিং ইউআইডি অনুসারে মাস্ক করে তবে এটি প্রত্যাশা অনুযায়ী কাজ করা উচিত।

5

উইন্ডোজ (সাইগউইন) এর ক্লিপবোর্ডে অনুলিপি করুন এবং আটকান:

দেখা:

$ clip.exe -?

CLIP
Description:
    Redirects output of command line tools to the Windows clipboard.
    This text output can then be pasted into other programs.
Parameter List:
/?                  Displays this help message.
Examples:
DIR | CLIP          Places a copy of the current directory
                        listing into the Windows clipboard.
CLIP < README.TXT   Places a copy of the text from readme.txt
                        on to the Windows clipboard.

এছাড়াও গেটক্লিপ (এটি Shift++ এর পরিবর্তে ব্যবহার করা যেতে পারে Ins) এবং পুটক্লিপ (এটিকে ক্লিপটিতে রাখার জন্য পুটক্লিপ.এক্সই) বিদ্যমান রয়েছে।


4

এটি একটি সাধারণ পাইথন স্ক্রিপ্ট যা আপনার যা প্রয়োজন ঠিক তা করে:

#!/usr/bin/python

import sys

# Clipboard storage
clipboard_file = '/tmp/clipboard.tmp'

if(sys.stdin.isatty()): # Should write clipboard contents out to stdout
    with open(clipboard_file, 'r') as c:
        sys.stdout.write(c.read())
elif(sys.stdout.isatty()): # Should save stdin to clipboard
    with open(clipboard_file, 'w') as c:
        c.write(sys.stdin.read())

এটি আপনার পথে কোথাও এক্সিকিউটেবল হিসাবে সংরক্ষণ করুন (আমি এটি এতে সংরক্ষণ করেছি /usr/local/bin/clipyour আপনার ক্লিপবোর্ডে সংরক্ষণ করার জন্য আপনি স্টাফের পাইপ করতে পারেন ...

echo "Hello World" | clip

এবং আপনি আপনার ক্লিপবোর্ডে যা আছে তা অন্য কোনও প্রোগ্রামে পাইপ করতে পারেন ...

clip | cowsay
 _____________
< Hello World >
 -------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

এটিকে নিজে চালানোই ক্লিপবোর্ডে যা রয়েছে তা কেবল আউটপুট করবে।


আপনি যখন কোনও একক কম্পিউটারে থাকেন তখন এটি কাজ করে তবে কম্পিউটারের মধ্যে জিনিসগুলি অনুলিপি করার অনুমতি দেয় না।
চার্লস প্লাগার

cat tmpfileক্লিপবোর্ড ক্রিয়াকলাপ নয়, কেবলমাত্র "প্রতিধ্বনি> tmpfile` এবং মনে হচ্ছে । //horta উত্তর হিসাবে একই।
ইউরেনচেন

এটি ক্লিপবোর্ড ভেরিয়েবল সেট করে বলে মনে হচ্ছে না, সুতরাং আমি অন্যান্য অ্যাপ্লিকেশনটিতে সামগ্রীটি আটকাতে পারি না - এটি আসল ক্লিপবোর্ড নয়!
জেনা

4

আমি একটি ভাল রেফারেন্স পেয়েছি: /unix/69111/

আমার ক্ষেত্রে আমি ক্লিপবোর্ডে সামগ্রী আটকানো এবং সেখানে কী আটকানো হয়েছে তা দেখতেও চাই, তাই আমি teeফাইল বর্ণনাকারীর সাহায্যে কমান্ডটিও ব্যবহার করেছি :

echo "just a test" | tee >(xclip -i -selection clipboard)

>()প্রক্রিয়া প্রতিস্থাপনের একটি ফর্ম। বাশ প্রতিটি ফাইলের বর্ণনাকারীর পাথের সাথে প্রতিস্থাপন করে যা বন্ধনীগুলির মধ্যে প্রোগ্রামের স্ট্যান্ডার্ড ইনপুটটির সাথে সংযুক্ত।

teeকমান্ড "পাইপ এর বিষয়বস্তু" আপনার কমান্ড আপনাকে অনুমতি কাটাচামচ এবং স্ট্যান্ডার্ড আউটপুট "stdout- এ" এ ফলাফল দেখতে

আপনি ক্লিপবোর্ডে লিখতে এবং লেখার জন্য এলিয়াস তৈরি করতে পারেন, আপনাকে "পিবিসিপি" এবং "পিবিপাস্ট" ব্যবহার করার অনুমতি দেয় যেন আপনি কোথায় ম্যাক থাকেন। আমার ক্ষেত্রে, আমি zsh ব্যবহার করার সাথে সাথে আমার আলিয়াস ফাইলটিতে এটি রয়েছে:

(( $+commands[xclip] )) && {
    alias pbpaste='xclip -i -selection clipboard -o'
    alias pbcopy='xclip -selection clipboard'
}

(( $+command[name] ))zsh পরীক্ষায় কমান্ড "নাম" আপনার সিস্টেমে ইনস্টল করা থাকে, তাহলে উভয় alias লেখা দিয়ে গোষ্ঠীবদ্ধ করে {}। এটি &&একটি বাইনারি এবং, যদি একটি বি হয়, সুতরাং আপনার যদি এক্সক্লিপ থাকে তবে এলিয়াসগুলি সেট করা হবে।

echo "another test" | tee >(pbcopy)

আপনার ক্লিপবোর্ডের সামগ্রী পেতে কেবল টাইপ করুন:

pbpaste | "any-command-you-need-here"

4
  xsel -b

এক্স উইন্ডোতে কাজ করে এবং এটি বেশিরভাগই ইতিমধ্যে ইনস্টল করা আছে। Xsel এর ম্যান পৃষ্ঠাতে একবার দেখার জন্য প্রচেষ্টা মূল্যবান।


2

কয়েক বছর আগে আমি লিখেছি কয়েকটি উইন্ডোজ প্রোগ্রাম। তারা আপনাকে ক্লিপবোর্ড ডাম্প, ধাক্কা, সংযোজন এবং মুদ্রণের অনুমতি দেয়। এটি এর মতো কাজ করে:

dumpclip | perl -pe "s/monkey/chimp/g;" | pushclip

এটিতে সোর্স কোড রয়েছে: সেমিডি_ক্লিপ.জিপ


2

কয়েকটি উপায় আছে। উল্লিখিত কয়েকটি উপায়ে tmux, স্ক্রিন, ভিম, ইম্যাকস এবং শেল অন্তর্ভুক্ত রয়েছে। আমি ইম্যাকস বা স্ক্রিন জানি না, তাই আমি অন্য তিনটির উপরে চলে যাব।

Tmux

এক্স নির্বাচন নয়, tmux এর একটি অনুলিপি মোড রয়েছে prefix-[( prefixএটি Ctrl+ Bডিফল্টরূপে) এর মাধ্যমে। এই মোডের জন্য ব্যবহৃত বাফারটি টিএমাক্সের জন্য পৃথক এবং একচেটিয়া, যা বেশ কয়েকটি সম্ভাবনা খোলে এবং সঠিক পরিস্থিতিতে এক্স নির্বাচনের তুলনায় এটি আরও বহুমুখী করে তোলে।

এই মোড থেকে প্রস্থান করতে, আঘাত করুন q; নেভিগেট করতে, ব্যবহার আপনার vimবা emacsবাঁধাই (ডিফল্ট = তেজ), তাই hjklআন্দোলন, জন্য v/V/C-vঅক্ষর / লাইন / অবরুদ্ধ নির্বাচন, ইত্যাদি জন্য আপনাকে আপনার নির্বাচনের আছে, আঘাত Enterকপি এবং মোড থেকে প্রস্থান করতে।

এই বাফার থেকে পেস্ট করতে, ব্যবহার করুন prefix-]

খোল

কোন ইনস্টলেশন X11: ডিফল্ট দুটি প্রোগ্রাম সঙ্গে আসা বলে মনে হয় xclipএবং xsel(যেমন ধরণ কিভাবে এটি উভয় দিয়ে আসে startxএবং xinit)। অন্যান্য উত্তরগুলির বেশিরভাগই উল্লেখ করে xclip, এবং আমি xselএর বংশবৃদ্ধির জন্য সত্যই পছন্দ করি, তাই আমি আবরণ করতে চলেছি xsel

এক্সসেল থেকে (1x) :

ইনপুট বিকল্পগুলি

-এ, - অ্যাপেন্ড করুন

নির্বাচনের জন্য স্ট্যান্ডার্ড ইনপুট যুক্ত করুন। সূত্রপাত- i

-ফ, - ফলো

স্ট্যান্ডার্ড ইনপুট বৃদ্ধি হিসাবে নির্বাচন যোগ করুন। সূত্রপাত- i

-আই, - ইনপুট

নির্বাচনের মধ্যে স্ট্যান্ডার্ড ইনপুট পড়ুন।

আউটপুট বিকল্পগুলি

-ও, - আউটপুট

নির্বাচন স্ট্যান্ডার্ড আউটপুট লিখুন।

ক্রিয়া বিকল্পগুলি

-সি, - ক্লিয়ার

নির্বাচন সাফ করুন। সমস্ত ইনপুট বিকল্পকে ওভাররাইড করে।

-ডি, - মুছে ফেলা

বর্তমান নির্বাচন মুছে ফেলার অনুরোধ করুন। এটি কেবল নির্বাচনকে সাফ করে না, তবে সেই প্রোগ্রামটিতেও অনুরোধ করে যাতে নির্বাচনটি নির্বাচিত সামগ্রীগুলি মুছে ফেলা হয়। সমস্ত ইনপুট বিকল্পকে ওভাররাইড করে।

নির্বাচন বিকল্প

-পি, - প্রথম

প্রাথমিক নির্বাচনের উপর পরিচালনা (ডিফল্ট)।

-স, - সেকেন্ডারি

দ্বিতীয় নির্বাচন নির্বাচন করুন।

-বি, - ক্লিপবোর্ড

ক্লিপবোর্ড নির্বাচন পরিচালনা করুন।

এবং এটি আপনার জানা দরকার about p(অথবা কিছুই) জন্য PRIMARY, sজন্য SECONDARY, bজন্য CLIPBOARD, oআউটপুট জন্য।

উদাহরণ: বলুন আমি fooএকটি টিটিওয়াই থেকে আউটপুট অনুলিপি করতে চাই এবং এটি একটি বাগ রিপোর্টের জন্য একটি ওয়েবপৃষ্ঠায় আটকানো চাই। এটি করার জন্য, টিটিওয়াই / এক্স সেশন থেকে / অনুলিপি করা আদর্শ হবে। সুতরাং প্রশ্নটি হয়ে যায় আমি কীভাবে টিটিওয়াই থেকে ক্লিপবোর্ড অ্যাক্সেস করব?

এই উদাহরণস্বরূপ, আমরা ধরে নিব এক্স সেশনটি প্রদর্শিত আছে :1

$ foo -v
Error: not a real TTY
details:
blah blah @ 0x0000000040abeaf4
blah blah @ 0x0000000040abeaf8
blah blah @ 0x0000000040abeafc
blah blah @ 0x0000000040abeb00
...
$ foo -v | DISPLAY=:1 xsel -b # copies it into clipboard of display :1

তারপরে আমি Ctrl-Vযথারীতি ফর্মটিতে এটি করতে পারি।

এখন বলুন যে সমর্থন সাইটের কেউ আমাকে সমস্যার সমাধানের জন্য চালানোর জন্য একটি কমান্ড দিয়েছেন। এটা জটিল এবং দীর্ঘ।

$ DISPLAY=:1 xsel -bo
sudo foo --update --clear-cache --source-list="http://foo-software.com/repository/foo/debian/ubuntu/xenial/164914519191464/sources.txt"
$ $(DISPLAY=:1 xsel -bo)
Password for braden:
UPDATING %%%%%%%%%%%%%%%%%%%%%%% 100.00%
Clearing cache...
Fetching sources...
Reticulating splines...
Watering trees...
Climbing mountains...
Looking advanced...
Done.
$ foo
Thank you for your order. A pizza should arrive at your house in the next 20 minutes. Your total is $6.99

পিজা অর্ডারটি কমান্ড লাইনের উত্পাদনশীল ব্যবহারের মতো বলে মনে হচ্ছে।

...সরানো.

তেজ

যদি এটি সংকলিত হয় +clipboard(এটি গুরুত্বপূর্ণ! আপনার চেক করুন vim --version), ভিমের এক্স PRIMARYএবং CLIPBOARDনির্বাচনের অ্যাক্সেস থাকা উচিত । দুটি নির্বাচন যথাক্রমে *এবং +রেজিস্টারগুলিতে অ্যাক্সেসযোগ্য এবং আপনার অবসর থেকে অন্য কোনও নিবন্ধকের মতোই লেখা এবং পড়তে পারে। উদাহরণ স্বরূপ:

:%y+    ; copy/yank (y) everything (%) into the CLIPBOARD selection (+)
"+p     ; select (") the CLIPBOARD selection (+) and paste/put it
ggVG"+y ; Alternative version of the first example

আপনার ভিমের অনুলিপিটি যদি এক্স নির্বাচনের সরাসরি অ্যাক্সেসকে সমর্থন না করে তবে এটি বিশ্বের শেষ নয়। আপনি কেবল xselশেষ বিভাগে বর্ণিত কৌশলটি ব্যবহার করতে পারেন ।

:r ! xsel -bo ; read  (r) from the stdout of (!) `xsel -bo`
:w ! xsel -b  ; write (w) to the stdin of    (!) `xsel -b`

একটি দম্পতি কী কম্বো বাঁধুন এবং আপনার ভাল হওয়া উচিত।


DISPLAY=অ-এক্স পরিবেশ থেকে কোনও এক্স অ্যাপ্লিকেশন কল করার সময় অবশ্যই ব্যবহার করতে ভুলবেন না। এক্স অ্যাপ্লিকেশনগুলিতে DISPLAYকোন সার্ভারের সাথে কথা বলা হচ্ছে তা নির্ধারণ করার জন্য পরিবেশের পরিবর্তনশীল প্রয়োজন (বা কেবলমাত্র একটি সার্ভার একাধিক সেশন পরিচালনা করছে?)। ব্যবহার করে দেখুন DISPLAY=:1 firefox(অথবা যাই হোক না কেন আপনার প্রদর্শন আইডি হতে পারে; খনি শুধু হতে হবে :1) উদাহরণস্বরূপ, একটি পির TTY থেকে।
ব্র্যাডেন সেরা

আমার জন্য আমার পরিবেশের পছন্দটি :%y+ভিআইএম-এ ছিল ।
হ্যাঙ্ককা

2

এই থ্রেড থেকে একটি বিকল্প রয়েছে যার জন্য কোনও gclip/ xclip/ xselতৃতীয় পক্ষের সফ্টওয়্যার ইনস্টল করার প্রয়োজন নেই ।

একটি পার্ল স্ক্রিপ্ট (যেহেতু পার্ল সাধারণত সর্বদা ইনস্টল থাকে)

use Win32::Clipboard;
print Win32::Clipboard::GetText();

আমি এটি কীভাবে ব্যবহার করব? PATH এ স্ক্রিপ্ট সংরক্ষণ করুন এবং এটিতে পাইপ? ভাগ করে নেওয়ার লিঙ্কগুলি অনুলিপি করতে আমি ড্রপবক্স ক্লিপ র‍্যাপারটি লেখার চেষ্টা করছি, তাই পাঠ্যটি হ্যান্ডেল করার জন্য আমার এটির প্রয়োজন।
জেনা


2

পিবিসিপিটি ওএসএক্স এ নির্মিত:

.বাশ_ প্রোফাইলের সামগ্রীটি অনুলিপি করা হচ্ছে:

cat ~/.bash_profile | pbcopy

1

ম্যাকোজে, ব্যবহার করুন pbpaste

উদাহরণ স্বরূপ:

ক্লিপবোর্ড আপডেট করুন

pbpaste  | ruby -ne ' puts "\|" + $_.split( )[1..4].join("\|") ' | pbcopy

1

আপনি যদি আমার মতো হন এবং মূল সুযোগ ছাড়াই লিনাক্স সার্ভারে চালনা করেন এবং কোনও এক্সক্লিপ বা জিপিএম না থাকলে আপনি কেবল একটি অস্থায়ী ফাইল ব্যবহার করে এই সমস্যাটি সমাধান করতে পারেন work উদাহরণ স্বরূপ:

$ echo "Hello, World!" > ~/clip
$ echo `cat ~/clip`
Hello, World!

আমি দেখতে পাচ্ছি না যে কীভাবে মূল সুবিধার অভাব এটির কারণ হয়।
ব্র্যাডেন সেরা

3
@ ব্র্যাডেনবেস্ট মূল অধিকারগুলির অভাব মানে আমি জিনিসগুলি ইনস্টল করতে পারিনি।
হর্টা

আপনি কি ইনস্টল করা হবে? এক্স? একটি সার্ভারে? আপনি যদি কিছু অদ্ভুত এক্স ফরোয়ার্ডিং পরিষেবা হোস্ট না করেন তবে আপনি কেন এটি করতে চান তা আমি দেখতে পাচ্ছি না।
ব্র্যাডেন সেরা

@ ব্র্যাডেনবেস্ট নিশ্চিত না প্রোগ্রাম বা পরিষেবা যাই হোক না কেন আমাকে একটি অনুলিপি পেস্ট সম্পাদন করতে দেয়।
হর্টা

1
ঠিক আছে, আপনি যদি X selectionsকোনওটি (যা "ক্লিপবোর্ড" দ্বারা আবশ্যক এবং এক্সক্লিপ / এক্সসেলের কোনও উল্লেখ দ্বারা আবশ্যক) ব্যবহার করে থাকেন তবে আপনার একটি সক্রিয় এক্স সেশন প্রয়োজন (এবং এইভাবে একটি এক্স সার্ভার) যাতে আপনি নির্বাচনের ক্ষেত্রে অ্যাক্সেস করতে পারেন প্রথম স্থান. আমি কী বলতে চাইছি তা দেখতে, DISPLAY="" xselআপনার স্থানীয় মেশিনে চালানোর চেষ্টা করুন । এটি ত্রুটি থেকে প্রস্থান করবে, সেশনটি খুঁজে পেতে অক্ষম হবে ""এবং কোনও এক্স নির্বাচনের সাথে কোনও ইন্টারঅ্যাকশন করা হবে না। এই কারণেই আমি প্রাথমিকভাবে বলেছি যে আমি দেখতে পাচ্ছি না যে এর মধ্যে রুট সুবিধাগুলি কীভাবে তৈরি হয়: মূল বা কোনও শিকড় নয়, আপনি কোনও সার্ভার পরিবেশে একটি X নির্বাচন দরকারী বলে খুঁজে পেতে পারেন না।
ব্র্যাডেন সেরা


1

ওয়েল্যান্ডের xcopy এ কাজ করছে বলে মনে হচ্ছে না, পরিবর্তে wl-clipboard ব্যবহার করুন। যেমন ফেডোরার উপর

sudo dnf install wl-clipboard

tree | wl-copy

wl-paste > file


0

যদিও> 1 বছর পরে, আমি কিছুটা আলাদা সমাধান ভাগ করে নিই। আশা করি এটি কারও জন্য কার্যকর is

গতকাল আমি এই প্রশ্নের সাথে নিজেকে পেয়েছি: "বিভিন্ন ব্যবহারকারীর অধিবেশনগুলির মধ্যে ক্লিপবোর্ড কীভাবে ভাগ করব?" ctrlaltF7- দিয়ে সেশনগুলির মধ্যে স্যুইচ করার সময় ctrlaltF8, বাস্তবে, আপনি যা অনুলিপি করেছেন তা পেস্ট করতে পারবেন না।

আমি একটি নামযুক্ত পাইপের উপর ভিত্তি করে নীচের দ্রুত এবং নোংরা সমাধান নিয়ে এসেছি । এটি অবশ্যই বেশ খালি এবং কাঁচা, তবে আমি এটি কার্যকরী দেখতে পেয়েছি:

user1@host:~$ mkfifo /tmp/sharedClip

তারপরে প্রেরণ টার্মিনালে

user1@host:~$ cat > /tmp/sharedClip

শেষ, গ্রহণ টার্মিনালে:

user2@host:~$ cat /tmp/sharedClip

এখন, আপনি প্রথম টার্মিনালে যেকোন কিছু টাইপ করুন বা আটকান এবং (আঘাত করার পরে return), এটি সাথে সাথে প্রাপ্ত টার্মিনালে উপস্থিত হবে, যেখানে আপনি নিজের পছন্দ মতো যেখানেই আবার অনুলিপি / আটকান করতে পারবেন।

অবশ্যই এটি ব্যবহারকারীর 2 টি ক্লিপবোর্ডে উপলব্ধ করার জন্য কেবল ব্যবহারকারী 1 এর ক্লিপবোর্ড থেকে সামগ্রীটি কঠোরভাবে গ্রহণ করে না, বরং এটির জন্য পেস্ট এবং অনুলিপি ক্লিকগুলির একটি অতিরিক্ত জুড়ি প্রয়োজন।


খুব অবাক লাগে না। দুটি ভিন্ন এক্স সার্ভার = দুটি পৃথক নির্বাচন সেট। যাইহোক, যদি আপনি পারে একটি স্ক্রিপ্ট যে মাধ্যমে ইনপুট / আউটপুট লাগে সেট আপ xsel/xclip। উদাহরণস্বরূপ, এক প্রান্তে বাছাইয়ের কোনও পরিবর্তন হয়েছে কিনা তা শুনে এবং তারপরে স্বয়ংক্রিয়ভাবে এটিকে পাইপ করে (নামী ফিফোর মাধ্যমে) অন্য স্ক্রিপ্টের কাছে পাইপ দেয় যা এক বা একাধিক পাইপ শুনছে, যা এটিকে নিজের এক্স নির্বাচনের মধ্যে প্রবেশ করে ser পাঠ্য অনুলিপি করার ফলে অন্যান্য এক্স সেশনের নির্বাচনের ক্ষেত্রে একই পাঠ্যটি স্বয়ংক্রিয়ভাবে উপস্থিত হবে। এবং সম্পর্কে ভুলবেন না $DISPLAY
ব্র্যাডেন সেরা

0

রুবি অনেলিনার আমাকে অজগর দিয়ে চেষ্টা করার জন্য অনুপ্রাণিত করেছিল।

বলুন আমরা একটি কমান্ড চাই যা ক্লিপবোর্ডে যা আছে তা 4 টি স্পেস সহ ইনডেন্ট করে। স্ট্যাকওভারফ্লোতে স্নিপেটগুলি ভাগ করার জন্য উপযুক্ত।

$ pbpaste | python -c "import sys
 for line in sys.stdin:
   print(f'    {line}')" | pbcopy

এটি টাইপো নয় লুপের জন্য পাইথনের নিউলাইনগুলি দরকার। স্মৃতিতে অতিরিক্ত অ্যারে তৈরি এড়াতে আমরা একটি পাসে লাইনগুলি পরিবর্তন করতে চাই।

আপনার যদি অতিরিক্ত অ্যারে তৈরি করতে আপত্তি না থাকে:

$ pbpaste | python -c "import sys; print(''.join([f'    {l}' for l in sys.stdin]))" | pbcopy

তবে সত্যই সত্যই অজগরের চেয়ে বিশ্রী ভাল। আমি এই ~/.bashrcফাইলটি আমার ফাইলটিতে সংজ্ঞায়িত করেছি

alias indent="pbpaste | awk '{print \"    \"\$0}' | pbcopy"

এখন যখন আমি indentআমার ক্লিপবোর্ডে যা আছে তা চালিত হয় ented

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.