লিনাক্সে ফোল্ডারের নামগুলিতে '2f' থেকে '-' নামকরণ করুন


4

আমি একটি ন্যাস ড্রাইভ থেকে নেওয়া একটি হার্ড ড্রাইভ পেয়েছি যেখানে ফাইলগুলি ম্যাক থেকে রাখা হয়েছে - তবে, কিছু ফাইলের নাম উদাহরণস্বরূপ, 'ব্যাকআপ 16/07/14' যা পরে 'ব্যাকআপে পরিবর্তিত হয়েছে। 16: 2f07: 2f14 'NAS এ।

একটি নতুন NAS উপর ফাইল অনুলিপি করার সময় এটি একটি সমস্যা প্রমাণ করা হয়। তাই আমি যা করতে চাই তা হল এই ফোল্ডারে থাকা ফোল্ডারে একটি কমান্ড চালানোর মাধ্যমে '2f' থেকে '-' এ স্যুইচ করুন।

আমি লিনাক্সে যুক্তিসঙ্গতভাবে নতুন, তাই আমি আটকে আছি। আমি একটি ভার্চুয়াল মেশিনে উবুন্টুতে হার্ড ড্রাইভ লোড করেছি।

কোনও পরামর্শ?

উত্তর:


1

আপনি যদি perl-renameউর্দ্ধা আছে prename:

find . -depth -name "*:*" -exec perl-rename 's/:2f/-/g' {} +

বিনা:

find . -depth -name "*:*" |
while read -r name; do
    mv -nT "$name" "${name//:2f/-}"
fi

সম্ভবত একটি নিরাপত্তার জন্য -print0এবং -d ''সেখানে চান ।
slhck

-1

আপনি ব্যবহার করতে হবে

sed

কমান্ড। এটি ফাইল নামগুলির অক্ষর প্রতিস্থাপন করতে ব্যবহার করা যেতে পারে । আপনি প্রথম সঙ্গে ফাইল খুঁজে

find

কমান্ড এবং ব্যবহার "|" sed তাদের পাইপ করতে।


আমি চলমান চেষ্টা find . -type f | xargs sed -i " 's/:2f/-/g'কিন্তু এটি চালানোর বলে মনে হচ্ছে না?
পিটার

এছাড়াও, এটি একটি পার্থক্য করে যদি ডিরেক্টরি নাম?
পিটার

1
@ পিটার: এটা চালায়; এটা শুধু আপনি উভয় প্রত্যাশা করছেন কি না। প্রধান হাতিয়ার এখানে sed -i, নেই নামান্তর ফাইল; এটা ফাইল সম্পাদনা করে। আপনি ফাইলের বিষয়বস্তুতে regex প্রয়োগ করার জন্য এটি জিজ্ঞাসা করছেন । পুনঃনামকরণের জন্য, আপনাকে একটি ভিন্ন সরঞ্জাম প্রয়োজন, উদাহরণস্বরূপ perl-rename। /// এবং হ্যাঁ, ডিরেক্টরি নামগুলি একটি পার্থক্য তৈরি করে: আপনি যোগ করেছেন -type f, তাই আপনি ফাইলগুলির একটি তালিকা, বিশেষ করে ডিরেক্টরিগুলির জন্য জিজ্ঞাসা করছেন। সমস্ত ডিরেক্টরি তালিকা, এটা হতে হবে -type d
গ্রীষ্ম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.