mvদ্বিতীয় যুক্তিতে পুরো পথটি টাইপ না করে কমান্ড কার্যকর করার কোনও উপায় আছে কি ?
উদাহরণ:
mv my/file/that/has/a/really/long/path/foo.bar some_magic_operator_that_means_the_same_directory/foo.baz
mvদ্বিতীয় যুক্তিতে পুরো পথটি টাইপ না করে কমান্ড কার্যকর করার কোনও উপায় আছে কি ?
উদাহরণ:
mv my/file/that/has/a/really/long/path/foo.bar some_magic_operator_that_means_the_same_directory/foo.baz
উত্তর:
আপনি বাশের ব্রেস প্রসারণ ব্যবহার করতে পারেন। এই:
mv my/file/that/has/a/really/long/path/foo.{bar,baz}
এর মধ্যে প্রসারিত হবে:
mv my/file/that/has/a/really/long/path/foo.bar my/file/that/has/a/really/long/path/foo.baz
এবং তারপরে mvসেই দুটি যুক্তি দিয়ে চালানো হয়। ব্রেস প্রসারণ সম্পর্কে আরও জানতে http://wiki.bash-hackers.org/syntax/expansion/brace দেখুন ।
ব্রেস প্রসারণের বিকল্প হিসাবে, আপনি ব্যাশ শেলের ইতিহাস সম্প্রসারণ বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন :
! ইতিহাস বিস্তারের পরিচয় দেয়# ইভেন্ট ডিজাইনার বর্তমান কমান্ডটি চিহ্নিত করে$ শব্দ ডিজাইনার শেষ যুক্তি উল্লেখ করে আপনি একটি সেড-এর মতো s/pattern/replacementসিনট্যাক্স উদাহরণ ব্যবহার করে প্রসারণের বিকল্পগুলি সম্পাদন করতে পারেন
somecommand path/to/foo.bar !#$:s/.bar/.baz
যাত্রা।
$ mv -v somepath/Original/Dir3/SubDir1/foo.bar !#$:s/.bar/.baz
mv -v somepath/Original/Dir3/SubDir1/foo.bar somepath/Original/Dir3/SubDir1/foo.baz
'somepath/Original/Dir3/SubDir1/foo.bar' -> 'somepath/Original/Dir3/SubDir1/foo.baz'
আপনি যদি নির্দিষ্টভাবে পথটি চান (উদাহরণস্বরূপ, mvসম্পূর্ণ আলাদা নামের কোনও ফাইল যা সহজেই প্রতিস্থাপনের দ্বারা প্রাপ্ত হয় না), আপনি এই hসংশোধকটি ব্যবহার করতে পারেন :
$ mv -v somepath/Original/Dir3/SubDir1/foo.baz !#$:h/baz.foo
mv -v somepath/Original/Dir3/SubDir1/foo.baz somepath/Original/Dir3/SubDir1/baz.foo
'somepath/Original/Dir3/SubDir1/foo.baz' -> 'somepath/Original/Dir3/SubDir1/baz.foo'
readlineশেষ আর্গুমেন্টটি ইয়ঙ্ক করার জন্য মূল সংমিশ্রণ সহ অন্যান্য বিকল্পগুলির জন্য , দেখুন ব্যাশ কনসোলে বর্তমানে প্যারামিটারে টাইপ করা পুনরায় কীভাবে করবেন?
`DIR=./really/long/path/mv "$DIR"foo.bar "$DIR"foo.bzএক লাইনে: DIR=./really/long/path/; mv "$DIR"foo.bar "$DIR"foo.bz
cdযে ডিরেক্টরিতে কাজ করতে চান তা আপনিও করতে পারেন:cd ./really/long/pathmv foo.bar foo.bzএক লাইনে: cd ./really/long/path && mv foo.bar foo.bz
&&সর্বশেষ ওয়ান-লাইনারে সেরা ব্যবহার । অন্যথায়, যদি cdব্যর্থ mvহয় তবে সম্ভাব্যভাবে একটি ফাইল ওভাররাইট করে ভুল ডিরেক্টরিতে চালানো হবে। সাথে cd ./really/long/path && mv foo.bar foo.baz, mvকেবল তখনই চালিত হবে যদি cdডিরেক্টরি পরিবর্তন করতে সফল হয়।
cdডিরেক্টরিতে এবংmvসেখান থেকে করতে পারবেন না ?