এমভি, বিদ্যমান থাকলে পুনরায় নামকরণ করুন


26

আমাকে একটি ডিরেক্টরিতে প্রচুর চিত্র সংগ্রহ করতে হবে। এই চিত্রগুলির অনেকেরই একই ফাইলের নাম।

mvটার্গেট ফাইলনামটি ইতিমধ্যে বিদ্যমান থাকলে সেটির pic1.jpegমতো কিছু হয়ে যায় সেগুলির কোনও নিরাপদ সংস্করণ স্বয়ংক্রিয়ভাবে ফাইলগুলির নাম পরিবর্তন করবে pic1_2.jpeg?

আমি আমার নিজস্ব পাইথন স্ক্রিপ্ট লিখতে পারতাম তবে সেখানে এই জাতীয় কিছু থাকতে হবে যাতে আমি এটি করতে পারি:

find . -type f -name *.jpg -exec mvsafe '{}' /targetpath/ \;

উত্তর:


38

এমভি ইতিমধ্যে বাক্সের বাইরে এটি সমর্থন করে (কমপক্ষে দেবিয়ান ভাষায়):

mv --backup=t <source_file> <dest_file>

এমভি (1) ম্যানপেজে যেমন দেখা গেছে:

--backup[=CONTROL]
         make a backup of each existing destination file

The  backup  suffix  is  `~',  unless  set  with   --suffix   or   SIM‐
PLE_BACKUP_SUFFIX.   The version control method may be selected via the
--backup option or through the  VERSION_CONTROL  environment  variable.

করতে --backup=tডাকা নিম্নরূপ গড় "সংখ্যাযুক্ত ব্যাকআপ করুন":

env VERSION_CONTROL=numbered mv --backup=t <source_file> <dest_file>

(ভাগ্য_ ফাইল অবশ্যই একটি ডিরেক্টরি হতে পারে)।

সম্পাদনা করুন: পরবর্তী সংস্করণগুলিতে (কমপক্ষে জিএনইউ কোর্টিলগুলি ৮.২২ তবে প্রোলি ইতিমধ্যে অনেক আগে) আপনি কেবল লিখতে পারেন

mv --backup=numbered <source_file> <dest_file>

1
আশ্চর্যজনকভাবে পরিষ্কার সমাধানের জন্য +1। বিটিডব্লিউ অপশনটি আরএইচইএল 6 এও উপস্থিত রয়েছে।
পাউয়ে ব্রোডাকী

দুর্দান্ত কার্যকারিতা থাকা সত্ত্বেও, এটি আমার ক্ষেত্রে সত্যিকার অর্থে এতটা সহায়তা করে না যেহেতু এটি এক্সটেনশনের পরে প্রত্যয় যুক্ত করবে, সুতরাং ফাইলগুলি .jpg ~ 1 like এর মতো শেষ হবে এবং আমার নামগুলি _1.jpg নামকরণ করা দরকার। ফাইলগুলি সরিয়ে নেওয়ার পরে আমি সম্ভবত এমএমভি ব্যবহার করব।
এডুক 16

4
এই mmv কমান্ড যে করছেন পরে আমার কাঙ্ক্ষিত ফলাফল অর্জন করবে হয় এমভি --backup = সংখ্যাযুক্ত: mmv -v " " # 1_ # 3. # 2 "~ * ~।"
theduke

আমার ডেবিয়ান সিস্টেমে (mmv 1.01b-18), সঠিক মিমভি কমান্ডটি হ'ল:mmv -v "*.*~*~" "#1_#3.#2"
জাভিয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.