সিপি বা এমভি ফাইলগুলিতে একই ডিরেক্টরিতে যখন তারা অন্যটিতে থাকি তখন তারা ইতিমধ্যে থাকে?


12

আমি যদি থাকি ~/blobএবং আমার কাছে একটি ফাইল থাকে~/blob/a_long_directory_name/c/x.x

আমি টাইপ করতে পারি

mv blob/a_long_directory_name/c/x.x blob/a_long_directory_name/even_more/y.y

এখানে কি কোনও শর্টকাট রয়েছে যার মাধ্যমে আমি সংক্ষিপ্ত কিছু টাইপ করতে পারি যা প্রথম প্যারামে ডিরেক্টরি পথ ব্যবহার করে (যদিও আমার বর্তমান ডিরেক্টরিটি নয়), উদাহরণস্বরূপ

mv blob/a_long_directory_name/c/x.x $same_dir/y.y

যেখানে পরম $same_dir1 এর দির দিকে কিছু দেখানো হবে

উত্তর:


8

টাইপিংয়ের পরিমাণ কমাতে, এটি দুটি ধাপে করা সবচেয়ে সহজ। ডিরেক্টরিতে সিডি করুন, তারপরে সরান।

আপনার যদি কেবল একটি আদেশ থাকে তবে আপনি সাবসেল ব্যবহার করতে পারেন:

$ (cd blob/a_long_directory_name/c/ && mv x.x y.y )

এর অর্থ cdকেবলমাত্র সাবশেলে কার্যকর mvহবে cd, সফল হবে কেবল তখনই , এবং আপনার বর্তমান শেলের কার্যকরী ডিরেক্টরি পরিবর্তন হবে না।

আপনার যদি একাধিক কমান্ড থাকে তবে ডিরেক্টরি স্ট্যাকটি ব্যবহার করুন।

$ pushd blob/a_long_directory_name/c/
$ mv x.x y.y
$ mv z.z q.q
$ popd

এটি even_moreআপেক্ষিক পথটিকে
সম্বোধন

ঐটা ঠিক. $ একই_দির উদাহরণটিও এটিকে এড়িয়ে চলেছে বলে মনে হয়েছে।
অ্যালান শুটকো

+1 আমি এটি পছন্দ করি। মনে রাখা এবং করা খুব সহজ এবং এটি আমার কাছে কী
মাইকেল ডুরান্ট

আকর্ষণীয়, যেহেতু এটি আপনি যা বলেছিলেন তা করে না। সম্ভবত আপনার প্রশ্ন আপনি ঠিক কি চান না?
অকেজো

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


5

আপনি আপনার শেলের পাঠ্য বিকল্পের ক্ষমতা ব্যবহার করতে পারেন। ইন bash, আপনি এই জাতীয় ব্যবহার করতে পারেন:

mv blob/a_long_directory_name/c/xx !#:$:gs^c/xx^evenmore/yy

এটি ভেঙে ফেলার জন্য:

!# এখন পর্যন্ত টাইপ করা বর্তমান লাইন

:$বিবেচনাধীন স্ট্রিংয়ের ( এই ক্ষেত্রে) শেষ শব্দটি ( ' সংখ্যার সাথে প্রতিস্থাপন করুন ' শব্দটি nবাছাই করতে ) চয়ন করতে বলুন। এতক্ষণ টাইপ করা লাইনের শেষ শব্দটি পূর্বের শব্দ হবে।n!#

:gs^xx^yyxx এর পরিবর্তে 'yy' এর পরিবর্তে ফলাফলের শব্দের উপরে বিশ্বব্যাপী ( g) পাঠ্য প্রতিস্থাপন ( s) করে। আপনার নিদর্শনগুলিতে ব্যবহারের অনুমতি দেওয়ার ^জন্য sকমান্ডের জন্য কেবল একটি সীমানা /

এই পদ্ধতিটি সামান্য সাধারণ কারণ এটি আপনাকে পথের কোনও অংশ ('xx') অন্য কোনও শব্দের সাথে ('yy') প্রতিস্থাপন করতে দেয়।

শেষ অবধি, কোনও ইতিহাসের কারসাজির মতো, উপযুক্ত শেল বিকল্পগুলি সেট করা ভাল (উদাহরণস্বরূপ ~/.bashrc)। এক্ষেত্রে

shopt -s histverify

আপনি রিটার্ন টিপানোর পরে সম্পাদিত লাইনটি প্রদর্শন করবে, যাতে আপনি এখনও এটি সম্পাদনা করতে পারেন এবং ত্রুটিগুলি পরীক্ষা করতে পারেন।

আপনি কেন এমন কনস্ট্রাক্ট ব্যবহার করবেন তা আমি নিশ্চিত নই তবে এটি এই ক্ষেত্রে কাজ করে।


ক) খুব বেশী লাইন গোলমাল (একটি মার্জিত বক্রবন্ধনী সম্প্রসারণ তুলনা) খ) ওপি এর সমস্যা সমাধান না: তারা প্রতিস্থাপন করতে চান c/x.xসঙ্গে evenmore/y.yমূল পথ উপসর্গ রাখা।
জোসেফ আর।

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

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