স্থানান্তর অপারেশনের লক্ষ্যে ডিরেক্টরি পরিবর্তন করুন


12

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

mv file.pdf ../../../Dropbox/sharedfolder/subdirectory/file.pdf

এরপরে, আমি প্রায়শই নিজেকে আমার আগের মুভ অপারেশনের টার্গেট ডিরেক্টরিতে ডিরেক্টরি পরিবর্তন করতে চাইছি। আমি নিজেকে উপরের তীরটি মারছে, ফাইনালটি মুছে ফেলা file.pdf, বামদিকে রাখা, মুছে ফেলা mv file.pdfএবং এর সাথে প্রতিস্থাপন করেছি cd

এটি করার জন্য কি আরও দ্রুত এবং স্মার্ট উপায় আছে? কোনও "মুভ ফাইল এবং তারপরে ডিরেক্টরিটি ডিরেক্টরিতে পরিবর্তন করুন" কমান্ড, বা শেষ ব্যবহৃত ডিরেক্টরিটির জন্য একটি শর্টকাট, বা এর মতো কিছু আছে?


1
আপনি যদি সিটিআরএল + বাম ধরে রাখেন তবে এটি শব্দের দ্বারা বাম দিকে চলে যাবে যা দ্রুত
বিড়াল

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

উত্তর:


17

আপনি যদি ব্যাশ ব্যবহার করছেন তবে এর ইতিহাস ইন্টারঅ্যাকশনটিতে এটির জন্য কেবল শর্টকাট রয়েছে। শব্দ designator পূর্ববর্তী কমান্ডের গত যুক্তি জন্য:

!!:$
পূর্ববর্তী কমান্ডের শেষ যুক্তি নির্ধারণ করে। এটি সংক্ষিপ্ত করা যেতে পারে !$

সাথে মিলিত একটি পরিবর্তক গত পথনাম উপাদান মুছে ফেলার জন্য:

Wordচ্ছিক শব্দ নকশাকারীর পরে, আপনি এক বা একাধিক বৈধ সংশোধকগুলির ক্রম যুক্ত করতে পারেন , প্রতিটি ':' এর আগে রয়েছে।

h
একটি মাথা অনুসরণ করে একটি অনুসরণযোগ্য পথের উপাদানটি সরান।

তাই:

$ echo /ab/c/d
/ab/c/d
$ echo !$:h
echo /ab/c
/ab/c

একই শর্টকাটটি zsh এর সাথেও ব্যবহার করা যেতে পারে।


1
এই এত শান্ত.
বয়স্ক গীক

4

আপনি যদি ফাইলের নাম পরিবর্তন না করে থাকেন তবে আপনি এটি বাদ দিতে পারেন এবং এমভি এটি স্বয়ংক্রিয়ভাবে যুক্ত হবে; একাধিক ফাইল সরানোর সময় এটি বিশেষত কার্যকর:

mv file.pdf ../../../Dropbox/sharedfolder/subdirectory/

mv *.pdf ../../../Dropbox/sharedfolder/subdirectory/

ডিরেক্টরিটি শেষ যুক্তি হিসাবে আপনি ব্যবহার করতে পারেন !!:$বা !$মুরুর উত্তর বর্ণনা হিসাবে ব্যবহার করতে পারেন ।
আপনি যদি সাধারণ ডিফল্ট সাথে ব্যাশ ব্যবহার করেন তবে আপনি Alt+ এর .পরিবর্তে ব্যবহার করতে পারেন ।
(এটি রিডলাইন insert-last-argumentকমান্ড; bind -pআপনার সমস্ত বর্তমান বাইন্ডিং তালিকাবদ্ধ করবে))


1
নোট করুন গন্তব্য ফাইলের নাম বাদ দিলে গন্তব্য ফাইলটি ইতিমধ্যে উপস্থিত থাকলে নিঃশব্দে ওভাররাইট করতে পারে
বিড়াল

mvঅপশন -i/ --interactiveবা -n/ উল্লেখ না করা পর্যন্ত সর্বদা নিঃশব্দে গন্তব্য ফাইলগুলি ওভাররাইট করে --no-clobberalias mv='mv -i' cp='cp -i'আমার সাথে তাই আছে .bashrc
ডেভিড ফোরস্টার

-1

আর একটি পদ্ধতি হ'ল এই উদ্দেশ্যে নিবেদিত আপনার নিজস্ব কমান্ড তৈরি করা। এটি এমন ফাংশনটির মাধ্যমে করা যেতে পারে যা দেখে মনে হয়:

$ function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }

যেখানে: (1) mv-special ফাংশন নাম; (2) ভেরিয়েবল $1এবং $2ফাংশনে আর্গুমেন্ট যারা কমান্ডগুলি ব্যবহার করবে mvএবং cd; (3) $(echo $2-) ভ্যারিতে স্ট্রিংয়ের শেষে একটি ওয়াইল্ডক্যাট চরিত্র যুক্ত করে $2এবং dirnameভেরিয়েবলটিতে $2কেবল পথ থাকলে তার আচরণ স্থির করে; (4) $(dirname $(echo $2-)) কেবলমাত্র থেকে ফিল্টার করবে $2

এই উত্তর অনুসারে ফাংশনটি দেখতে পারে:

$ function mv-special { mv $1 $2; cd ${2%/*}; }

যেখানে: ${2%/*}কেবলমাত্র পথটি ফিল্টার করবে $2

কমান্ড হিসাবে উপলব্ধ হওয়ার জন্য এই ফাংশনটি রফতানি করতে হবে :

$ export -f mv-special

ব্যবহার:

$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/file.pdf

বা:

$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/

দয়া করে এতে মনোযোগ দিন - উভয় রূপের জন্য - দ্বিতীয় যুক্তি ( $2) অবশ্যই ফাইলের নাম বা স্ল্যাশ ( /) দিয়ে শেষ হবে ।

আমাদের নতুন কমান্ড স্থায়ীভাবে উপলভ্য হওয়ার জন্য, ফাংশনটির সংজ্ঞা এবং এক্সপোর্ট কমান্ড অবশ্যই এতে যুক্ত করা উচিত ~/.bashrc:

# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
export -f mv-special

বা:

# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd ${2%/*}; }
export -f mv-special

এখানে চিত্র বর্ণনা লিখুন


কাস্টম কমান্ড তৈরি করা যেতে পারে এবং এক্সিকিউটেবল স্ক্রিপ্ট ফাইলের মাধ্যমে যা এতে ~/binবা এর মধ্যে রাখা হয় /usr/sbin: আমি কীভাবে একটি কাস্টম টার্মিনাল কমান্ড তৈরি করতে পারি (স্ক্রিপ্ট চালানোর জন্য)? তবে সত্যি কথা বলতে, এই দৃশ্যে আমি আচরণের সাথে একটি সমস্যার মুখোমুখি হয়েছিলাম cd

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