আমি কীভাবে কোনও কমান্ডের আউটপুট সরাসরি আমার ক্লিপবোর্ডে অনুলিপি করতে পারি?


525

টার্মিনালটি ব্যবহার করার সময় আমি কীভাবে কোনও কমান্ডের আউটপুটটিকে আমার ক্লিপবোর্ডে পাইপ করতে পারি এবং এটি আবার পেস্ট করতে পারি? এই ক্ষেত্রে:

cat file | clipboard



উইন্ডোজ গিট বাশ থেকে উবুন্টুতে লগ ইন করার সময় আমি এক্সক্লিপ কাজ করতে পারছি না বলে আমি কেবল একটি সম্পর্কিত প্রশ্ন জিজ্ঞাসা করেছি: stackoverflow.com/q/60117294/470749
রায়ান

1
ক্লিপ বোর্ডে ফাইলের সামগ্রী সংরক্ষণ করুন। apt install xclipএবংcat file | xclip -sel clip
ইসমাeল

উত্তর:


595

আমি সর্বদা এটি করতে চেয়েছিলাম এবং এটি করার একটি দুর্দান্ত এবং সহজ উপায় খুঁজে পেয়েছি। আমি অন্য কারও প্রয়োজন হলে সম্পূর্ণ প্রক্রিয়াটি লিখেছিলাম।

প্রথমে একটি 16 কেবি প্রোগ্রাম ইনস্টল করুন xclip:

sudo apt-get install xclip

তারপরে আপনি xclipক্লিপবোর্ডে অনুলিপি করতে আউটপুটটি পাইপ করতে পারেন :

cat file | xclip

আপনি কেবল অনুলিপি করা পাঠ্যটি পেস্ট করতে আপনি ব্যবহার করতে পারেন:

xclip -o

জীবনকে সহজ করার জন্য, আপনি আপনার .bashrc ফাইলে একটি উপন্যাস সেট করতে পারেন যা আমি করেছি:

alias "c=xclip"
alias "v=xclip -o"

এটি কতটা কার্যকর তা দেখতে, কল্পনা করুন যে আমি আমার বর্তমান পাথটি একটি নতুন টার্মিনাল উইন্ডোতে খুলতে চাই ( এটি কিছু পদ্ধতিতে Ctrl+ এর মতো করার অন্যান্য উপায়ও হতে পারে T, তবে এটি কেবল উদাহরণের উদ্দেশ্যে):

Terminal 1:
pwd | c

Terminal 2:
cd `v`

` ` চারপাশে লক্ষ্য করুন v। এটি vপ্রথমে একটি কমান্ড হিসাবে কার্যকর করে এবং তারপরে এটি cdব্যবহারের জন্য স্থানে রাখে।

Xক্লিপবোর্ডে কেবল সামগ্রীটি অনুলিপি করুন

cat file | xclip

আপনি যদি Xঅ্যাপ্লিকেশন ব্যতীত অন্য কোথাও পেস্ট করতে চান তবে এটি ব্যবহার করে দেখুন:

cat file | xclip -selection clipboard

143
"ক্যাট ফাইল | এক্সক্লিপ" কেবলমাত্র 'এক্স' ক্লিপবোর্ডে সামগ্রীটি অনুলিপি করতে পারেন, আপনি যদি 'এক্স' অ্যাপ্লিকেশন ব্যতীত অন্য কোথাও পেস্ট করতে চান তবে এটি চেষ্টা করে দেখুন: "বিড়াল ফাইল | এক্সক্লিপ-নির্বাচন ক্লিপবোর্ড"
খোটন

5
আপনার পছন্দসই হ্যান্ডেলটি উপযুক্ত!
ম্যাট যোগদানকারী

4
আপনি যদি নতুন লাইন চরিত্রটি মুছে ফেলতে চান যাতে আপনি সরাসরি "pwd | c" এর ফলাফলটি আটকান এবং সম্পাদনা করতে পারেন, আপনি "pwd | tr -d '\ n' | xclip -seration c" করতে পারেন
আনেকে

12
এছাড়াও সিস্টেম ক্লিপবোর্ড থেকে অনুলিপি / আটকানো সহজalias "cs=xclip -selection clipboard"alias "vs=xclip -o -selection clipboard"
ইয়েবো ইয়াং

1
যেখানে আমার কাছে সুডো অ্যাক্সেস নেই এবং এক্সক্লিপ ইনস্টল করা হয়নি এমন একটি সমাধান সম্পর্কে কী বলা যায় ??
ড্যানগার্ডন

178

ওএস এক্স-এ, ব্যবহার করুন pbcopy; pbpasteবিপরীত দিকে যায়।


13
Yups! প্রাক্তনটির জন্য ঠিক pbcopy < .ssh/id_rsa.pub
এটির

কমান্ড আউটপুট জন্য কাজ করে না - যেমনpbcopy < git merge-base master some-branch
বেন

আপনি যদি
টিএমউক্স

1
আপনি যদি ইতিমধ্যে এটির সাথে কাজ করেন তবে আপনি বিড়ালও ব্যবহার করতে পারেন: cat file.txt | pbcopy
rtrigoso

3
আমি জানি মন্তব্যটি 5 বছরের পুরনো, তবে ভবিষ্যতে কেউ যদি এই বিষয়ে হোঁচট খায় তবে কমান্ড আউটপুট ব্যবহার করতে করতেgit merge-base master some-branch | pbcopy
স্যাম

62

আমি লিনাক্স / ওএসএক্স / সাইগউইনের জন্য একটি সরঞ্জাম তৈরি করেছি যা এই অন্যদের মতো তবে কিছুটা অনন্য। আমি এটি কল করি cbএবং এটি এই গিথুব গিস্টে পাওয়া যাবে

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

লিনাক্স

_copy(){
    cat | xclip -selection clipboard
}

_paste(){
    xclip -selection clipboard -o
}

ম্যাক অপারেটিং সিস্টেম

_copy(){
    cat | pbcopy
}

_paste(){
    pbpaste
}

Cygwin

_copy(){
    cat > /dev/clipboard
}

_paste(){
    cat /dev/clipboard
}

দ্রষ্টব্য: আমি মূলত বব এনোহপের উত্তরটি সম্পর্কে আমার মন্তব্যে এটি উল্লেখ করার ইচ্ছা করেছি । তবে আমি বুঝতে পেরেছিলাম যে আমার মুষ্টিতে একটি README যুক্ত করা উচিত। যেহেতু সংক্ষিপ্ত সম্পাদক মার্কডাউন পূর্বরূপ সরবরাহ করে না আমি উত্তর বাক্সটি এখানে ব্যবহার করেছি এবং এটি আমার টুকরো টুকরো করে অনুলিপি / পেস্ট করার পরে, "আমি উত্তরও জমা দিতে পারি।"

CB

ক্লিপবোর্ডে একটি ফাঁস-প্রমাণ টি

এই স্ক্রিপ্টটি মডেল করা হয়েছে tee(দেখুন man tee) এর পরে ।

এটি আপনার সাধারণ অনুলিপি এবং পেস্ট কমান্ডগুলির মতো তবে একীভূত এবং যখন আপনি এটি শৃঙ্খলাবদ্ধ হতে চান তা বোধ করতে সক্ষম

উদাহরণ

কপি

$ date | cb
# clipboard contains: Tue Jan 24 23:00:00 EST 2017

আটকে দিন

# clipboard retained from the previous block
$ cb
Tue Jan 24 23:00:00 EST 2017
$ cb | cat
Tue Jan 24 23:00:00 EST 2017
$ cb > foo
$ cat foo
Tue Jan 24 23:00:00 EST 2017

চেইনিং

$ date | cb | tee updates.log
Tue Jan 24 23:11:11 EST 2017
$ cat updates.log
Tue Jan 24 23:11:11 EST 2017
# clipboard contains: Tue Jan 24 23:11:11 EST 2017

পুনর্নির্দেশের মাধ্যমে অনুলিপি করুন

(কালানুক্রমিকভাবে এটি শেষে ডেমো বুদ্ধিমান হয়েছে)

# clipboard retained from the previous block
$ cb < foo
$ cb
Tue Jan 24 23:00:00 EST 2017
# note the minutes and seconds changed from 11 back to 00

ম্যাকোজে টার্মিনালে ক্লিপবোর্ডে একটি কমান্ড আউটপুট অনুলিপি করার জন্য এটি আমার পক্ষে নিখুঁত কাজ করেছে, ধন্যবাদ!
জোশুয়া ডাইক

46

আমি এই ছোট স্ক্রিপ্টটি লিখেছি যা অনুমান / অনুলিপি কমান্ডগুলি থেকে কাজটি অনুমান করে।

স্ক্রিপ্টটির লিনাক্স সংস্করণটি আপনার সিস্টেমে ইতিমধ্যে ইনস্টল করা xclip উপর নির্ভর করে। স্ক্রিপ্টটিকে ক্লিপবোর্ড বলা হয়।

#!/bin/bash
# Linux version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard     # Pipe someapp's output into clipboard
#        clipboard | someapp     # Pipe clipboard's content into someapp
#

if command -v xclip 1>/dev/null; then
    if [[ -p /dev/stdin ]] ; then
        # stdin is a pipe
        # stdin -> clipboard
        xclip -i -selection clipboard
    else
        # stdin is not a pipe
        # clipboard -> stdout
        xclip -o -selection clipboard
    fi
else
    echo "Remember to install xclip"
fi

স্ক্রিপ্টের ওএস এক্স সংস্করণটি পিবিকপি এবং পিবিপস্টে নির্ভর করে যা সমস্ত ম্যাকের উপর পূর্বেই ইনস্টল করা আছে।

#!/bin/bash
# OS X version
# Use this script to pipe in/out of the clipboard
#
# Usage: someapp | clipboard     # Pipe someapp's output into clipboard
#        clipboard | someapp     # Pipe clipboard's content into someapp
#

if [[ -p /dev/stdin ]] ; then
    # stdin is a pipe
    # stdin -> clipboard
    pbcopy
else
    # stdin is not a pipe
    # clipboard -> stdout
    pbpaste
fi

স্ক্রিপ্টটি ব্যবহার করা খুব সহজ কারণ আপনি কেবল clipboardএই দুটি উদাহরণ হিসাবে দেখিয়েছেন বা এর বাইরে পাইপ করছেন ।

$ cat file | clipboard

$ clipboard | less

3
আমি নাম ব্যবহার pbcopyএবং pbpasteলিনাক্স তাই এটি উভয় Linux এবং OS X এর জন্য কাজ করে
StackedCrooked

ওবুন্টুতে স্ক্রিপ্টটি বিশ্বব্যাপী কাজ করতে: * এটি সংরক্ষণ ~/.scripts/clipboard করুন * বাশের chmod +x ~/.scripts/clipboard জন্য এটি সম্পাদনযোগ্য করুন : * মাছের export PATH=$PATH:~/.scriptsশেষ প্রান্তে ~/.bashrcযুক্ত করুন: * যুক্ত set PATH ~/.scripts $PATHকরুন ~/.config/fish/fish.config যদি কোনও ফাইল বা ফোল্ডার ইতিমধ্যে বিদ্যমান না থাকে কেবল সেগুলি তৈরি করুন।
হকি

2
আপনি এই স্ক্রিপ্টটিকে একটি ফাংশন হিসাবে মোড়াও করতে পারেন এবং clipboard(){ ... }এটিকে
সেবাস্তিয়ান নওক

এটি আমি তৈরির মতোই একই রকম, তবে আমি শৃঙ্খলার মতোই অনুমতি দিই date | cb | tee -a updates.log। যে পাঠাবেন dateক্লিপবোর্ডে কমান্ড আউটপুট এবং এটি বরাবর প্রেরণ tee -aকমান্ড যার ফলে এটি একটি ফাইলে appends এবং বরাবর এটি পাস stdout। তবে এটি " ক্লিপবোর্ডে লিক-প্রুফ টি " এর মতো কারণ আপনি যদি কেবলমাত্র date | cbকোনও আউটপুট পান না তবে। এবং পরিশেষে এটি cb > file.txt জিস্ট.github.com/ রিচার্ড ব্রোনোস্কি
ব্রুনো ব্রোনোস্কি

একটি পরামর্শ - পেস্ট করার সময় কমান্ডটি প্রয়োগ করা এড়াতে ট্রাইলিং করা নতুন লাইনের চরিত্রটি স্ট্রিপ করুন (উদাহরণস্বরূপ যদি কোনও পথ অনুলিপি-পেস্ট করা হয়)। আমি কমান্ডটি সংশোধন করে xclip -i -selection clipboardতা করিxargs echo -n | xclip -i -selection clipboard
Ivaylo Strandjev 25:58

23

এটি আপনার যুক্ত করুন ~/.bashrc:

# Now `cclip' copies and `clipp' pastes'
alias cclip='xclip -selection clipboard'
alias clipp='xclip -selection clipboard -o'

এখন পি পেস্ট এবং সি ক্লিপ অনুলিপিগুলি ক্লিপ করুন - তবে আপনি ফ্যানসিয়ার স্টাফও করতে পারেন:

clipp | sed 's/^/    /' | cclip

Clip আপনার ক্লিপবোর্ডে প্রবেশ করে; ওভারফ্লো { }বোতাম স্ট্যাক ছাড়া সাইটের জন্য ভাল

এটি চালিয়ে আপনি এটি যুক্ত করতে পারেন:

printf "\nalias clipp=\'xclip -selection c -o\'\n" >> ~/.bashrc
printf "\nalias cclip=\'xclip -selection c -i\'\n" >> ~/.bashrc

দয়া করে একটি ব্যবহারের উদাহরণ দিন
উল্ফ আসলাক

7

আমি পার্সেলাইট ব্যবহার করছি এবং আমার ক্লিপবোর্ড পরিচালক xselথেকে শেষ প্রতিশ্রুতি বার্তা অনুলিপি gitকরতে (কিছু কারণে xclipকাজ করে না):

$ git log -1 --pretty=%B | xsel -i -b

7

বাহ্যিক সরঞ্জামগুলি ব্যবহার না করে আপনি যদি সার্ভার ভিউ এসএসএইচে সংযোগ করছেন তবে এটি তুলনামূলক সহজ কমান্ড:

একটি উইন্ডোজ 7+ কমান্ড প্রম্পট থেকে:

ssh user@server cat /etc/passwd | clip

এটি দূরবর্তী ফাইলের সামগ্রী আপনার স্থানীয় ক্লিপবোর্ডে রাখবে।

(কমান্ডটির জন্য কীটির জন্য পেজেন্ট চলমান প্রয়োজন, অথবা এটি আপনাকে একটি পাসওয়ার্ড চাইবে))


1
@ আফশিন মোয়াজামি, শিরোনাম এবং প্রশ্নটি নিজেই জেনেরিক, কেবলমাত্র ট্যাগগুলি ইউনিক্স সিস্টেমের জন্য ইঙ্গিত দেয় এবং আমার উত্তরটি কেসটি কভার করে যখন আপনি উইন্ডোজ মেশিনে ইউনিক্স সার্ভার থেকে তারিখটি পাওয়ার চেষ্টা করেন, যা ভবিষ্যতের দরকারী পাঠক হতে পারে।
ডি.রায়েভ

1
উত্সাহিত হয়েছে কারণ হ্যাঁ, উইন্ডোজ প্রশাসকদের কাছে যারা কেবল স্থানীয়ভাবে খেলতে পারেন পাওয়ারশেল (যদিও এখন এলএসডব্লিউ আসলে কার্যকরী, আমি সরাসরি পাওয়ারশেল থেকে ব্যাশে যেতে পারি এবং সেখান থেকে আমার * নিক্সী জিনিসগুলি করতে পারি)।
ফ্লিট

এটি ডস প্রম্পটে পাশাপাশি উইন্ডোজ 10-তে গিট echo Hello World | clip

5

ম্যাকের জন্য হ'ল কমান্ড লাইনটি ব্যবহার করে (ক্লিপবোর্ডে) পেস্ট (ক্লিপবোর্ডে) কপি করার একটি উদাহরণ

pwdক্লিপবোর্ডে কমান্ডের ফলাফলটি অনুলিপি করুন

$ pwd | pbcopy

হিসাবে ক্লিপবোর্ডে সামগ্রী ব্যবহার করুন

$ cd $(pbpaste)

3

আমি এক্সক্লিপ বা এক্সসেল ব্যবহার না করে অনুরূপ কার্যকারিতা সরবরাহ করার জন্য একটি ছোট সরঞ্জাম তৈরি করেছি। stdoutএকটি ক্লিপবোর্ডে অনুলিপি করা হয় এবং টার্মিনালে আবার আটকানো যেতে পারে। দেখা:

https://sourceforge.net/projects/commandlinecopypaste/

দ্রষ্টব্য, এই সরঞ্জামটির কোনও এক্স-সেশনের প্রয়োজন নেই। ক্লিপবোর্ডটি কেবল টার্মিনালের মধ্যেই ব্যবহার করা যেতে পারে Ctrl+Vএবং অন্য এক্স-উইন্ডোতে মিডল-মাউস ক্লিক করে আটকানো হয় না ।


3

লিনাক্সে এক্সক্লিপ ইনস্টল সহ:

xclip- নির্বাচন ক্লিপবোর্ড <ফাইল


2

পূর্ববর্তী পোস্টগুলির উপর ভিত্তি করে, আমি নিম্নলিখিত হালকা-ওজনের ওরফে সমাধানটি দিয়ে শেষ করে যা এতে যোগ করা যেতে পারে .bashrc:

if [ -n "$(type -P xclip)" ]
then
  alias xclip='xclip -selection clipboard'
  alias clipboard='if [ -p /dev/stdin ]; then xclip -in; fi; xclip -out'
fi

উদাহরণ:

# Copy
$ date | clipboard
Sat Dec 29 14:12:57 PST 2018

# Paste
$ date
Sat Dec 29 14:12:57 PST 2018

# Chain
$ date | clipboard | wc
   1       6      29

1

আমি পি-পি-পি ব্যাকগ্রাউন্ড থেকে এসেছি এবং এর অ্যাক্সেস নেই xclip , xselবা অন্যান্য অভিনব স্টাফ। বিষয়টিকে আরও খারাপ করার জন্য আমার কাছে একটি টিসিএসএইচ কনসোল রয়েছে।

অপরিহার্য বিষয়গুলি: qdbus klipper xargs bash

কার্যকর বাশ তৈরি করুন foo.sh

#!/bin/bash
qdbus org.kde.klipper /klipper setClipboardContents "$1" > /dev/null

দ্রষ্টব্য: এটি বাশ করা দরকার কারণ টিসিএসএইচ বহু-লাইন যুক্তি সমর্থন করে না।

এর পরে একটি টিসিএসএইচ ওরফে রয়েছে .cshrc

alias clipboard xargs -0 /path/to/foo

ব্যাখ্যা:

xargs -0পাইপ স্টিডিন একটি একক যুক্তিতে। এই যুক্তিটি বাশ এক্সিকিউটেবলের কাছে প্রেরণ করা হয়েছে যা "ক্লিপবোর্ডে অনুলিপি" প্রেরণ klipperকরে qdbus। পাইপ/dev/nullqdbus কনসোলে ফিরে আসা নতুন লাইন অক্ষরটি মুদ্রণ করতে হবে না ।

ব্যবহারের উদাহরণ:

ls | clipboard

এটি ক্লিপবোর্ডে বর্তমান ফোল্ডারের সামগ্রীগুলি অনুলিপি করে।

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


1

যখন আমি আমার অনুলিপি করতে হয় তখন আমি সাধারণত এই আদেশটি চালাই ssh-key:

cat ~/.ssh/id_rsa.pub | pbcopy

ctrl+v যে কোন জায়গায় অন্য.


1

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

sudo dnf install wl-clipboard

tree | wl-copy

wl-paste > file

0

যারা তাদের উইন্ডোজ সিস্টেমে ইনস্টল করা ব্যাশ ব্যবহার করেন (লিনাক্সের জন্য উইন্ডোজ সাবসিস্টেম হিসাবে পরিচিত (ডাব্লুএসএল)), এক্সক্লিপ চেষ্টা করার ফলে একটি ত্রুটি ঘটবে:

Error: Can't open display: (null)

পরিবর্তে, মনে রাখবেন যে লিনাক্স সাবসিস্টেমটিতে উইন্ডোজ এক্সিকিউটেবলের অ্যাক্সেস রয়েছে। ক্লিপ.এক্সেক্সের মতো ব্যবহার করা সম্ভব

echo hello | clip.exe

যা আপনাকে পেস্ট কমান্ড (ctrl-v) ব্যবহার করতে দেয়।


1
মনে রাখবেন যে যদি কোনও এক্সসার্ভার (যেমন vcxsvr বা xming) উইন্ডোতে ইনস্টল করা থাকে, একটি ডিসপ্লে আপ থাকে এবং এক্সক্লিপবোর্ড চলমান থাকে, আপনি আসলে xclip ব্যবহারহীনভাবে ব্যবহার করতে পারেন।
বিটবাইট

0

কেবল একটি প্রান্তের মামলাটি কভার করার জন্য :) এবং কারণ প্রশ্নের শিরোনাম জিজ্ঞাসা করে (কমপক্ষে এখন) কীভাবে কোনও কমান্ডের আউটপুট সরাসরি ক্লিপবোর্ডে অনুলিপি করতে হয়।

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

এই দৃশ্যের জন্য, আমরা হয় জিডিএম বা অনুরূপ মাউস ইউটিলিটি ব্যবহার করতে পারি এবং মাউস ব্যবহার করে নির্বাচন করতে পারি। apt-get install gdmএবং তারপরে টার্মিনালে অনুলিপি এবং পেস্ট করার জন্য ডান ক্লিক করুন বা Cntrl + Shift + c এবং Cntrl + Shift + v সংমিশ্রণগুলি

অথবা, যা আমার পক্ষে পছন্দসই পদ্ধতি (যেমন মাউস যখন আপনার একাধিক প্যান পাশাপাশি পাশাপাশি থাকে তখন একটি ফলকের ভিতরে সঠিকভাবে নির্বাচন করতে পারে না এবং tmux ব্যবহার করে আমরা স্ট্যান্ডার্ডটি ব্যবহার করে tmux বাফারে অনুলিপি করতে পারি) [, স্থান, নির্বাচন করতে সরান, লিখুন বা আপনি কোডের একটি ব্লক নির্বাচন করতে পারেন। এছাড়াও আপনি টিএমাক্সের মতো ক্লিপ মাল্টিপ্লেক্সারের কোনও এক লেনের ভিতরে থাকা অবস্থায় এটি বিশেষভাবে কার্যকর এবং আপনার একগুচ্ছ পাঠ্য নির্বাচন করতে হবে তবে লাইন নম্বরগুলি নয় (আমার ভিম সেটআপটি রেখার সংখ্যাগুলি সরবরাহ করে)

এর পরে আপনি কমান্ডটি ব্যবহার করতে পারেন:

tmux সেভ-বাফার - | xclip -i

আপনি অবশ্যই এটির নিজের পছন্দ মতো কোনও উপায়ে টিএমক্স কনফিগারেশন ফাইলে সরাসরি বাঁধতে পারেন

কমান্ডটি আবার কার্যকর করা সম্ভব না হলে এই প্রান্ত কেসটি কভার করার জন্য এটি আপনাকে ধারণামূলক উত্তর দেওয়ার জন্য। আপনার যদি আরও নির্দিষ্ট কোড উদাহরণগুলির প্রয়োজন হয় তবে আমাকে জানান

চিয়ার্স

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