শেল কমান্ডে ডিরেক্টরি নামের পরে স্ল্যাশ (/)


14

আমার এখানে একটু প্রশ্ন আছে।

আমি দুটি ফাইলের থাকে, তাহলে বলতে fileaএবং fileb, mv filea filebwould

  • মুছে ফেলা fileb
  • নামান্তর fileaকরতেfileb

তারপর যদি আমি দুই ডিরেক্টরি আছে, বলতে diraএবং dirb, mv dira dirbwould

  • সরানো diraমধ্যে dirb(এটা হয়ে যাবে dirb/dira)

উল্লেখ করে যে উভয় ক্ষেত্রেই কোনও নোটিশ বা বার্তা নেই, তবে এটি আমার কাছে বেশ বেমানান। আমার মনে হয় কেবলমাত্র লিখিত সামগ্রীর সাথে mv dira dirbওভাররাইট করা উচিত (বা নামের ডিরেক্টরিতে দুটি ডিরেক্টরি একত্রিত )।dirbdiradirb

আমি কোথাও পড়ে মনে পড়েছি যে স্ল্যাশ (যেমন dira/) এর সাথে একটি ডিরেক্টরি নামের সাথে ডিরেক্টরি হিসাবে বিবেচনা করা হয়, এবং কোনও স্ল্যাশ (যেমন dira) নামটি কোনও ফাইলের মতো (অবশ্যই কিছু নির্দিষ্ট ক্ষেত্রে) হিসাবে গণ্য করা হয়। যাইহোক এখন আমি শেলটি (zsh এবং সম্ভবত ব্যাশ) স্ল্যাশ ব্যবহার করে আমার ডিরেক্টরিটির স্বরলিপিটিকে সম্মান করতে চাই। টার্মিনাল বিকল্প আছে যা আমাকে এটি প্রয়োগ করতে সক্ষম করে?

স্পষ্ট করার জন্য, এখানে আমার কাঙ্ক্ষিত আচরণ:

  • mv dira dirbdirbএর সামগ্রীর সাথে ওভাররাইট করা ফলাফলdira
  • mv dira dirb/(এ ) মধ্যে diraসরানো ফলাফলdirbdirb/dira

আমার মতো কেউ কি ভেবে দেখেছেন? নাকি আমি কি অদ্ভুত?


2
আমি মনে করি আপনার পছন্দসই আচরণ বরং বিপজ্জনক হবে।
starblue

@ স্টারব্লিউ: হ্যাঁ আমি সম্মত যে এটি বিপজ্জনক, তবে আমি বরং অসঙ্গতি চেয়ে বিপজ্জনক কিছু নিয়ে বেঁচে
থাকব

উত্তর:


11

হ্যাঁ, এটি জিএনইউ সরঞ্জামগুলির মধ্যেও কিছুটা বেমানান।

আপনার প্রস্তাবনার সাথে একটি সমস্যা হ'ল খালি নয় এমন ডিরেক্টরিগুলি সরানো যাবে না। এগুলি ছাড়াও -T(জিএনইউ জমিতে, যাইহোক) আপনি যা চান (তারপরে প্রথম ক্ষেত্রে) প্রায় হয়:

$ ls dira/ dirb/
dira/:
a

dirb/:
b
$ mv -iT dira/ dirb/
mv: overwrite `dirb/'? y
mv: cannot move `dira/' to `dirb/': Directory not empty
$ rm dirb/b 
$ mv -iT dira/ dirb/
mv: overwrite `dirb/'? y
$ ls dira/ dirb/
ls: cannot access dira/: No such file or directory
dirb/:
a

আপনি একটি উপনাম যুক্ত করতে পারেন, যেমন alias ren=mv -T
মাইকেল

0

আপনি যদি দিরার থেকে স্রোতে সব কিছু সরিয়ে নিতে চান তবে চালাতে পারেন mv dira/* dirb

আমার এইচপি-ইউএক্সে এমভি ম্যান পৃষ্ঠা অনুসারে।

The mv command moves:

+ One or more directory subtrees (directory1, [directory2, ...]) to a new or existing directory (dest-directory).


3
আপনার কমান্ডটি সমস্ত ডটফাইল মিস করবে।
কিবিবি

যাহাই হউক না কেন ডট ফাইলের প্রয়োজন;)
রবার্ট ম্যাসাওলি

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