বাশ সহ এক্সটেনশন-কম ফাইলগুলিতে ".jpg" ফাইল এক্সটেনশন যুক্ত করার ভাল উপায় কী?
বাশ সহ এক্সটেনশন-কম ফাইলগুলিতে ".jpg" ফাইল এক্সটেনশন যুক্ত করার ভাল উপায় কী?
উত্তর:
for f in *.jpg; do mv "$f" "${f%.jpg}"; done
for f in *; do mv "$f" "$f.jpg"; done
"${f%.jpg}"
বাশ শেল স্ট্রিং ম্যানিপুলেশন। % $ {স্ট্রিং% সাবস্ট্রিং} $ স্ট্রিং এর পিছন থেকে স্ট্রিংয়ের sh এর সংক্ষিপ্ততম মিলটি মুছে ফেলে।
.jpg
এমনকি সাধারণ ফাইলগুলিতে যুক্ত করে adds
আপনি নামটি ব্যবহার করতে পারেন:
rename 's/(.*)/$1.jpg/' *
rename from to file...
অন্য উপায় - লুপ ছাড়াই
find . -type f -not -name "*.*" -print0 |\
xargs -0 file |\
grep 'JPEG image data' |\
sed 's/:.*//' |\
xargs -I % echo mv % %.jpg
ভাঙ্গন:
উপরের কমান্ডটি শুকনো রানের জন্য , এর পরে আপনার এমভিয়ের আগে "প্রতিধ্বনি" মুছে ফেলা উচিত
সম্পাদনা করুন কিছু লোক এখানে পরামর্শ দিচ্ছেন যে এখানে "উদ্ধৃতিগুলিতে পথ আর্গুমেন্টগুলি মোড়ানো প্রয়োজন ; স্পেসগুলির সাথে পাথগুলিতে যুক্তি বিভক্ত হওয়া এড়ানো" ।
সাধারণত, এই সুপারিশটি সত্য, এক্ষেত্রে নয়। কারণ, এখানে %
প্রতিস্থাপন করেছি হয় না শেল সম্প্রসারণ কিন্তু দ্বারা xargs
, অভ্যন্তরীণভাবে (সরাসরি) যাতে %
এমনকি ফাইলের নামের মধ্যে ব্যবধান সহ সঠিকভাবে দ্বারা প্রতিস্থাপিত হবে।
সাধারণ ডেমো:
$ mkdir xargstest
$ cd xargstest
# create two files with spaces in names
$ touch 'a b' 'c d'
$ find . -type f -print
./c d
./a b
# notice, here are spaces in the above paths
#the actual xargs mv WITHOUT quotes
$ find . -type f -print | xargs -I % mv % %.ext
$ find . -type f -print
./a b.ext
./c d.ext
# the result is correct even in case with spaces in the filenames...
আপনার ফাইলগুলি যেখানে রয়েছে সেই ডিরেক্টরিতে সিডি করুন এবং:
for f in *;do mv $f $f.jpg;done
for f in *;do mv "$f" "$f".jpg;done
ফাইল নামগুলিতে ফাঁকা স্থান সমর্থন করার জন্য ব্যবহার করা ভাল ।
আমার ক্ষেত্রে আমি filetype: সচেতন তাই আমি ব্যবহার ছিল না এমভি সাহায্যে কমান্ড ফাইল পরীক্ষা করার এবং সম্ভবত ফাইলের ধরন খুঁজে কমান্ড। এই সমাধানটি সমস্ত ফাইলের জন্য নিখুঁত হতে পারে না কারণ ফাইল কমান্ডটি ফাইল টাইপকে স্বীকৃতি দিতে পারে না তবে এটি বেশিরভাগ ক্ষেত্রেই আমার পক্ষে কার্যকর।
for f in *; do ext=$(file $f | awk '{print $2;}'); mv -n "$f" "$f.$ext"; done
অজকের ব্যবহার হ'ল কমান্ড ফাইল থেকে ফিরে আসা স্ট্রিংয়ের দ্বিতীয় শব্দটি সত্যই এক্সটেনশন stri
rename --dry-run * -a ".jpg" # test
* -a ".jpg" # rename
--dry-run
এবং -a
আমার সংস্করণে উপলব্ধ নয় rename
। এটি যদি কোনও স্থাপত্যের সাথে নির্দিষ্ট হয় তবে এটি নির্দিষ্ট করা উচিত।
আপনি একাধিক ফাইল মুভ ব্যবহার করতে পারেন । আমি এই প্রকল্পের একজন রক্ষণাবেক্ষণকারী। বাক্য গঠনটি সহজ।
mmf files*
এটি আপনার ফাইলের সমস্ত সম্পাদনাকারীর নাম বা এডিটরটি ডিফল্টরূপে খুলবে এবং আপনি Ctrl + v + G- র সাহায্যে সমস্ত ফাইলের নামের শেষে হাইলাইট করতে পারবেন, ফাইলটি সংরক্ষণ করুন, প্রস্থান করুন এবং এটি আপনার সমস্ত ফাইলের নাম পরিবর্তন করা হয়েছে
রায়ান লি
যে ডিরেক্টরিতে ফাইল এক্সটেনশন নেই সেগুলির মধ্যে একাধিক ফাইলগুলিতে একটি ফাইল এক্সটেনশন যুক্ত করার জন্য সঠিক বাক্য গঠন ax
find . | while read FILE; do if [[ -n `file --mime-type "$FILE" | grep 'message/rfc822'` ]]; then mv "$FILE" "$FILE".eml; fi; done;
mv "${file}" "${file}.jpg"
?