কমান্ড লাইন থেকে একটি ফাইল / ডিরেক্টরি কপি এবং পেস্ট করুন


17

পরিবর্তে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

সিপি {উত্স ফাইল {{গন্তব্য ফাইল}

আমি ক্লিপবোর্ডে কোনও ফাইল অনুলিপি করতে এবং অন্য কোনও ডিরেক্টরিতে অন্য কোনও জায়গায় পেস্ট করতে সক্ষম হতে চাই। এটার মতো কিছু:

/ usr / স্থানীয় / dir1 # সিপি {উত্স ফাইল}
/ usr / স্থানীয় / dir1 # সিডি / usr / স্থানীয় / dir2
/ usr / স্থানীয় / dir2 # পেস্ট

এটা কি সম্ভব?

উত্তর:


17

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

function Copy {
    touch ~/.clipfiles
    for i in "$@"; do
      if [[ $i != /* ]]; then i=$PWD/$i; fi
      i=${i//\\/\\\\}; i=${i//$'\n'/$'\\\n'}
      printf '%s\n' "$i"
    done >> ~/.clipfiles
}

function Paste {
    while IFS= read src; do
      cp -Rdp "$src" .
    done < ~/.clipfiles
    rm ~/.clipfiles
}

এই ধারণাটি বাস্তবায়নের জন্য আরও ভাল স্ক্রিপ্টগুলি লেখা যেতে পারে, আমি নিজের পরীক্ষা করেছি এবং এটি ফাইল এবং ফোল্ডারগুলির জন্য খুব ভাল কাজ করে (আমি জানি না কীভাবে xclipফোল্ডারগুলি অনুলিপি করার জন্য কাজ করতে পারে !!)


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

/usr/local/dir1# Copy a.txt *.cpp
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Paste

/usr/local/dir1# Copy *.h *.cpp b.txt subdir1
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Paste

/usr/local/dir1# Copy a.txt b.txt 
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# Copy c.txt d.txt
/usr/local/dir2# cd /usr/local/dir3
/usr/local/dir3# Paste

1
এটি একটি মোহন মত কাজ করে!
মাইসাম

2
আমি এই ধারনাটি পছন্দ করি. এবং সামান্য পরিবর্তন সহ, আপনি এমনকি একটি "কাটা" ফাংশন বাস্তবায়ন করতে পারে।
পাবলো ভেনচুরিনো

@ গিলস আপনি দয়া করে ব্যাখ্যা করতে পারেন আপনি কেন প্রতিস্থাপন echoকরেছেন printf?
মাইসাম

@ মাইসাম এমনকি এর অধীনেও কাজ করতে shopt -s xpg_echo
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

1
@ মাইসাম printfপোর্টেবল এবং সুরক্ষিত echoনা থাকলেও । উওলজ উইকি সংক্ষেপে এর উল্লেখ করেছে
jw013

10

আমি এক্সক্লিপ প্রস্তাব। আমি এটির জন্য সর্বদা এটি ব্যবহার করি। তবে আপনার কোনও স্ক্রিপ্টের দরকার নেই। শুধু ফাংশন ব্যবহার করুন।

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

আমি আপনার মধ্যে কিছু ফাংশন লেখার পরামর্শ দিচ্ছি .bashrc:

clip2file () {
  xclip -out -selection clipboard >> $@
  echo -e "\n" >> $@
}

file2clip () {
  cat $@ | xclip -selection clipboard
}

এগুলি ব্যবহার করার জন্য আপনার apt-get install xclip(ডেবিয়ান, উবুন্টু, লিনাক্স মিন্ট ইত্যাদি) বা zypper in xclip(ওপেনসুএস, অন্যান্য .আরএম-ভিত্তিক সিস্টেমগুলি) বা কিছু সমতুল্য প্রয়োজন। আপনি যে সিস্টেমটি ব্যবহার করছেন তাতে প্রোগ্রামটি উপলব্ধ থাকতে হবে।


3

আপনি এর xclipজন্য কমান্ডটি ব্যবহার করতে পারেন । আপনি এই লিঙ্কটি থেকে বাশ স্ক্রিপ্টগুলি ডাউনলোড করতে পারেন এবং আপনার ফাইলের জন্য bash cp2clipএবং এর জন্য এলিয়াস রাখতে পারেন ।bash clippaste.bashrc


@ আপনি কি এলিয়াস বলতে চাইছেন?
ixtmixilix

আমি বোঝাতে চাইছি ফাইলগুলি আপনার হোম ডিরেক্টরিতে রাখুন এবং আপনার .bashrc ওরফে সিপি 2 ক্লিপ = 'বাশ / হোম / <ব্যবহারকারীর নাম /cp2clip.sh' এবং ক্লিপপাস্ট = 'বাশ / হোম / <ব্যবহারকারীর নাম /clippaste.sh' তে দুটি এলিয়াস রাখুন আপনি এগুলি যে কোনও জায়গায় ব্যবহার করতে পারেন। এলিয়াস সম্পর্কে আরও জানতে আপনি দেখতে পারেন man aliasবা linfo.org/alias.html
harish.venkat
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.