ক্লিপবোর্ডে একটি ফাইল অনুলিপি করতে টার্মিনাল ব্যবহার করে


159

আমি ডেস্কটপে একটি ফাইল পেয়েছি, ফাইলের নাম হ'ল hdml। ফাইলটি অনুলিপি করতে, আমি ফাইলটি ক্লিক করি এবং সিএমডি + সি টিপুন।

এখন আমি টার্মিনাল ব্যবহার করে কীভাবে একই জিনিস করব?


2
আপনার অর্থ ফাইলটি অনুলিপি করা বা ফাইলের বিষয়বস্তু অনুলিপি করা যাতে সামগ্রীগুলি আটকানো যায়?
ব্যবহারকারী 151019

উত্তর:


237

যদি আমি প্রশ্নটি সঠিকভাবে বুঝতে পারি তবে আপনি পরে কী pbcopyএবং pbpaste

একটি টার্মিনাল খুলুন এবং করুন:

$ cat ~/Desktop/ded.html | pbcopy

এখন সেই ফাইলটি ক্লিপবোর্ডে রয়েছে।

এটি অন্য কোথাও রাখার জন্য, এটি আটকানোর জন্য, করুন:

$ pbpaste > ~/Documents/ded.html

এখন আপনার ded / ডকুমেন্টে বসে ডেড। Html এর একটি অনুলিপি থাকা উচিত।


3
পাঠ্য ফাইলগুলির সাথে কাজ করার জন্য এটি দুর্দান্ত, তবে আপনি বাইনারিগুলির সাথে কার্য সম্পাদনের চেষ্টা করার সময় ব্যর্থ হবে। আমি কী বলতে চাইছি তা দেখতে একটি চিত্র দিয়ে এটি ব্যবহার করে দেখুন।
Itai Ferber

7
$ বিড়াল ~ / ডেস্কটপ / ডেপ pbcopy ফাইলটি পেস্ট করতে আমি cmd + v ব্যবহার করতে পারি না। আলথচট <pbpaste> ~ / ডকুমেন্টস / ডেড এইচটিএমএল কাজটি করেছে।
ক্রুদ্ধ কিউই

আপনি ফাইলের সামগ্রীগুলি ওএসএক্স ক্লিপবোর্ডে ফাইন্ডার মেনুতে গিয়ে > ক্লিপবোর্ডটি দেখিয়ে (যোসেমাইটে পরীক্ষিত) দেখতে পারেন।
ড্যানিড

ধন্যবাদ, কোন ধারণা আমি কীভাবে এটি পড়েছি এবং এটি পরবর্তী কমান্ডে প্রেরণ করব? যেমন cat ~/.emulator_console_auth_token | auth <read_content>?
ডোমিনিক

এটি ফাইলের বিষয়বস্তু অনুলিপি করে, তবে ফাইলটি নিজেই নয়।
vy32

20

লির উত্তর সঠিক দিক দিয়ে চলেছে তবে এর মধ্যে বেশ কয়েকটি ত্রুটি রয়েছে: ফাইন্ডার ব্যবহার করার দরকার নেই ( স্ট্যান্ডার্ডএডিশনস ওএসএএক্স এর the clipboardঅংশ ) এবং হ্যান্ডলারের দেওয়া কমান্ড লাইন থেকে তর্কগুলি পাস করার আরও নির্ভরযোগ্য উপায় (10.4 থেকে)। এই দুটি পরিবর্তনই ব্যাপকভাবে "পলায়ন" সরল করে দেয় যা শেলের মধ্যে প্রোগ্রামে প্রবেশের জন্য করা দরকার।run

এখানে আমার সংস্করণটি রয়েছে (শেল ফাংশনটিতে আবৃত — এটি আপনি .bashrcএটিতে রাখতে পারেন (যেমন) এটি আপনার শেলগুলিতে উপলব্ধ করার জন্য):

file-to-clipboard() {
    osascript \
        -e 'on run args' \
        -e 'set the clipboard to POSIX file (first item of args)' \
        -e end \
        "$@"
}

file-to-clipboard ~/Desktop/ded.html

এই স্ক্রিপ্টের সাথে ক্লিপবোর্ডে রাখা একটি ফাইলের পরে ফাইলটি অন্য ফোল্ডারে অনুলিপি করতে ফাইন্ডারে আটকানো যেতে পারে ।

ওসাস্ক্রিপ্ট হ্যাশ-ব্যাং ইন্টারপ্রেটার হিসাবে ব্যবহৃত হতে পারে (10.5 সাল থেকে)। এটি একটি ফাইলে রাখুন (উদাঃ file-to-clipboard)

#!/usr/bin/osascript
on run args
  set the clipboard to POSIX file (first item of args)
end

ফাইলটি এক্সিকিউটেবল করুন ( chmod +x /path/to/where/ever/you/put/file-to-clipboard)। তারপরে এটি চালান:

/path/to/where/ever/you/put/file-to-clipboard ~/Desktop/ded.html

যদি এটি কোনও PATH ডিরেক্টরিতে সঞ্চিত থাকে তবে আপনি "স্ক্রিপ্ট" ফাইলের পথটি বাদ দিতে পারেন।


@ ল্রি: ফাইন্ডার স্পষ্ট বুঝতে পারে না set the clipboard to {one,two}(যদিও অন্য একটি অ্যাপলস্ক্রিপ্ট প্রোগ্রাম সফলভাবে তালিকাটি বের করতে পারে)। StandardAdditions ক্লিপবোর্ডে কমান্ড একক আইটেম সীমাবদ্ধ হতে পারে।
ক্রিস জনসন

1
এটি একাধিক ফাইলের জন্য কাজ করবে?
ভাইটালিবি

দ্রষ্টব্য: প্রদত্ত পাথটি স্ক্রিপ্টটির কাজ করার জন্য একটি পরম পথ হতে হবে।
লিও

8

কমান্ড লাইনটি ব্যবহার করে আপনি যা করার চেষ্টা করছেন তা অর্জন করার কোনও উপায় নেই। অ্যাপল যখন পাঠ্যের অনুলিপিটি অনুলিপি করার অনুমতি দেওয়ার জন্য সরঞ্জাম pbcopyএবং pbpasteসরঞ্জামগুলি সরবরাহ করে, আপনি যে অর্থে সন্ধান করছেন সেটি কোনও ফাইল অনুলিপি করতে আপনি এই সরঞ্জামগুলি ব্যবহার করতে পারবেন না।

খুব বেশি প্রযুক্তিগত বিশদে না গিয়ে, আপনি যখন ফাইন্ডার ব্যবহার করে কোনও ফাইল 'অনুলিপি' করেন C, আপনি আসলে ফাইলটি অনুলিপি করেন না, কেবল ক্লিপবোর্ডে থাকা ফাইলটির একটি রেফারেন্স তৈরি করে এবং এটি ফাইলের রেফারেন্স হিসাবে চিহ্নিত করে। আপনি যখন পেস্ট করবেন তখন কোনও অ্যাপ্লিকেশন এই রেফারেন্সটি গ্রহণ করে, আপনার জিনিসগুলি বাছাই করা, আপনি কী পেস্ট করেছেন তা নির্ধারণ করার এবং শেষ পর্যন্ত ফাইলটি যেমন উপযুক্ত হবে তেমন কাজ করার দায়িত্ব রয়েছে। সংক্ষেপে, আপনি যখন ফাইন্ডারে কোনও ফাইল অনুলিপি করেন, তখন এটি কোনও নির্দিষ্ট ক্লিপবোর্ডে একটি নির্দিষ্ট উপায়ে ফাইলের পাথ সংরক্ষণ করে এবং আপনি যখন পেস্ট করেন, তখন এটি ফাইলের পাথটি গ্রহণ করে এবং বিষয়বস্তু ব্যবহার করে একটি নতুন ফাইল তৈরি করতে জানে পুরানো একটি (ক্লিপবোর্ডে একটি ফাইল অনুলিপি করুন, এটি মুছুন, এটি অন্য কোথাও আটকানোর চেষ্টা করুন এবং উদাহরণস্বরূপ কী ঘটে তা দেখুন)।

অনুলিপি করা এবং আটকানোর এই অর্থে, হাতের কাছে পাওয়া সরঞ্জামগুলি আপনার যা প্রয়োজন তা করতে যথেষ্ট নয়। বোহজ যেমন পরামর্শ দিয়েছেন, আপনি পুরানো ফাইলের বিষয়বস্তুগুলি একটি নতুন অনুলিপি করতে চেষ্টা করতে পারেন, তবে এটি কেবল পাঠ্য ফাইলের জন্যই ভাল কাজ করবে। আপনার প্রাপ্ত কোনও বাইনারি ফাইলগুলি কলুষিত হবে (কোনও চিত্রের সাহায্যে এটি করার চেষ্টা করুন - এটি দূষিত হয়ে যায়)।

Traditionalতিহ্যবাহী কমান্ড লাইন আপনাকে এইভাবে ব্যর্থ করবে, তবে আপনি যদি একবার অ্যাপলস্ক্রিপ্টে এটি করতে চান, তবে কমান্ড লাইনের সাহায্যে এটি অনুরোধ করতে পারেন তবে আপনি একবার নজর দিতে পারেন osascript


আপনি চিত্র ইত্যাদির বিষয়ে ঠিক বলেছেন আমি সে সম্পর্কে ভাবিনি। আমার ধারণা আমি প্রশ্নটি ভুল বুঝেছি, যদিও এটি একটি html ফাইলের সাথে কাজ করবে pbcopyএবং pbpasteএটি কেবলমাত্র একটি টেক্সট ফাইল হিসাবে ঘটে বলেই ঘটে।
বোহহজ

না, আপনি প্রশ্নটি সঠিকভাবে বুঝতে পেরেছিলেন, এটি কেবলমাত্র আপনি ধরে নিয়েছেন যে এই সরঞ্জামগুলি তাদের উচিত হিসাবে কাজ করেছে, যা তারা তা করে না। এগুলি বগি, এবং এমনকি সেভাবে কাজ করার অর্থ নয়, যদিও অ্যাপল ডকুমেন্টেশনে খুব খারাপ কাজ করেছে। আপনি যদি টাইপ করেন তবে আপনি কেবল পুনরাবৃত্তি করে pbcopy -helpএকটি অ-উত্পাদন-যোগ্য NSLog()লাইন পান 'pbcopy -help'। এটি এটি বুঝতে একটি প্রোগ্রামার হতে সহায়তা করে, এ কারণেই আমি চিম ইন করা প্রয়োজন বলে মনে করেছি
Itai Ferber

1
হ্যাঁ, কোনও সমস্যা নেই। ;)
Itai Ferber

1
যে কেউ পিবিসিপিটি কিছুটা দৃষ্টি আকর্ষণ করতে চায় সে বিনামূল্যে বিকাশকারী অ্যাকাউন্ট পেতে পারে এবং কিছু বাগ ফাইল করতে পারে - bugreport.apple.com - এটি কোনও গ্যারান্টি দেয় না, তবে পর্যাপ্ত লোকেরা এখনও যত্ন নিলে ইঞ্জিনিয়ারদের এই জিনিসগুলিতে কাজ করার জন্য সময় দেওয়ার সুযোগ দেয় ।
bmike

1
সিপিএল-এ অ্যাপলস্ক্রিপ্টের মাধ্যমে ওপি কী চান তা অর্জন করতে পারে?

7

নীচের ফাংশনটি কেবল একটি একক ফাইলের সাথে কাজ করে, একাধিক ফাইলের সাথে নয়। এর জন্য জিএনইউ দরকার readlinkযা আপনি চালিয়ে ইনস্টল করতে পারেন brew install findutils

copy(){ osascript -e{'on run{a}','set the clipboard to posix file a',end} "$(greadlink -f -- "$1")";}

সম্পাদনা: আমি tell app "Finder"ব্লকটি সরিয়েছি ।

সম্পাদনা 2: আপেক্ষিক পাথ সমর্থন করে এমন কোনও সংস্করণে ফিরে যাওয়া।


2
এটি আসলে কাজ করে!
বেমমু

6

pbcopy < filenameটার্মিনালে এক্সিকিউটিভ কমান্ড নামের ফাইলটির বিষয়বস্তু অনুলিপি করে filename


3

গন্তব্যে কোনও ফাইল অনুলিপি করতে, cpকমান্ডটি ব্যবহার করুন ।

cp /path/to/file /path/to/destination

দেখুন man cpআরও তথ্যের জন্য।


2
এটি ক্লিপবোর্ডকে লক্ষ্য অবস্থান হিসাবে উল্লেখ করে এমন প্রশ্নের উত্তরের নয়।
কেলিফজ

2

এখানে একটি সহজ শেল / বাশ স্ক্রিপ্ট। এটি কেবল আপনার .bashrcফাইলে আটকে দিন (বা এর মতো):

file-to-clipboard() {
    if [ -z "$1" ]; then
        echo "file path/name:"
        read FILE
    else
        FILE="$1"
    fi
    pbcopy < "$FILE"
}

0

আপেক্ষিক ফাইলের সমর্থন সহ:

clip_img() {
    osascript -e 'on run argv' \
        -e 'set currentDir to do shell script "pwd"' \
        -e 'set the clipboard to (read POSIX file (POSIX path of (currentDir as text & (first item of argv) )) as JPEG picture)' \
        -e 'end run' "/$1"
    # osascript -e 'clipboard info'
}

clip_img path-to-fileক্লিপবোর্ডে চিত্র অনুলিপি করতে চালান , এবং path-to-fileআপেক্ষিক হতে পারে। ফাইলটি জেপিগ বা পিএনজি ফাইল হতে পারে।


-2

আপনি ইউনিট পরিবেশে বিড়াল 'অরিজিনফিল'> 'গন্তব্যস্থান' ব্যবহার করতে পারেন;

উইন্ডোতে অরিজিনফাইলে গন্তব্যস্থানটি অনুলিপি করুন।


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