বাশ সহ ফাইলগুলিতে ফাইল এক্সটেনশন যুক্ত করুন


94

বাশ সহ এক্সটেনশন-কম ফাইলগুলিতে ".jpg" ফাইল এক্সটেনশন যুক্ত করার ভাল উপায় কী?


4
mv "${file}" "${file}.jpg"?
onteria_

4
আপনার দৃষ্টিতে, "এক্সটেনশন-কম ফাইল" কী? এটি নামে বিন্দুবিহীন ফাইল?
গ্লেন জ্যাকম্যান

উত্তর:


118
for f in *.jpg; do mv "$f" "${f%.jpg}"; done
for f in *; do mv "$f" "$f.jpg"; done

8
দ্বিতীয়টি এক্সটেনশনহীন ফাইলগুলির নামকরণের জন্য উপযুক্ত! ধন্যবাদ!
anon58192932

4
দ্বিতীয়টি কেবল সমস্ত এক্সটেনশন যুক্ত করে, কেবল এক্সটেনশনহীন ফাইলগুলি নয়
জেফ

4
ঠিক যেমন নোট "${f%.jpg}"বাশ শেল স্ট্রিং ম্যানিপুলেশন। % $ {স্ট্রিং% সাবস্ট্রিং} $ স্ট্রিং এর পিছন থেকে স্ট্রিংয়ের sh এর সংক্ষিপ্ততম মিলটি মুছে ফেলে।
জিচাও

সতর্কতা: আপনার যদি মিশ্র এক্সটেনশনের ফোল্ডার থাকে তবে জেনে রাখুন যে উপরেরটি .jpgএমনকি সাধারণ ফাইলগুলিতে যুক্ত করে adds
sachinruk

61

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

rename 's/(.*)/$1.jpg/' *

4
নাম পরিবর্তন করার কোন সংস্করণ আপনি ব্যবহার করছেন? আমার বিভিন্ন যুক্তি রয়েছে:rename from to file...
বি জনসন

4
পুনর্নামটি পার্লের সাথে অন্তর্ভুক্ত করা হয়েছে, এটি সংস্করণ 5.10.1।
কিম স্টেবল

4
এটি উবুন্টুতে অন্তর্ভুক্ত পুনর্নবীকরণের সাথে দুর্দান্ত কাজ করে (এবং তাই আমি সমস্ত দেবিয়ান ভিত্তিক ডিস্ট্রো অনুমান করছি), জেএম 666 এর উত্তরের চেয়ে অনেক কম ভার্বোস।
রজার হিথকোট

28

অন্য উপায় - লুপ ছাড়াই

find . -type f -not -name "*.*" -print0 |\
xargs -0 file |\
grep  'JPEG image data' |\
sed 's/:.*//' |\
xargs -I % echo mv % %.jpg

ভাঙ্গন:

  • এক্সটেনশন ছাড়াই সমস্ত ফাইল সন্ধান করুন
  • ফাইল টাইপ পরীক্ষা করুন
  • কেবল জেপিজি ফাইলগুলি ফিল্টার করুন
  • ফাইল টাইপ তথ্য মুছুন
  • xargs প্রতিটি ফাইলের জন্য "এমভি" চালায়

উপরের কমান্ডটি শুকনো রানের জন্য , এর পরে আপনার এমভিয়ের আগে "প্রতিধ্বনি" মুছে ফেলা উচিত

সম্পাদনা করুন কিছু লোক এখানে পরামর্শ দিচ্ছেন যে এখানে "উদ্ধৃতিগুলিতে পথ আর্গুমেন্টগুলি মোড়ানো প্রয়োজন ; স্পেসগুলির সাথে পাথগুলিতে যুক্তি বিভক্ত হওয়া এড়ানো"

সাধারণত, এই সুপারিশটি সত্য, এক্ষেত্রে নয়। কারণ, এখানে %প্রতিস্থাপন করেছি হয় না শেল সম্প্রসারণ কিন্তু দ্বারা 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...

আপনি এটিকে একটি লুপে রাখতে পারেন এবং এই জার্গগুলি অতিমাত্রায়। আমি এই পরিস্থিতিতে রায়ের উত্তরটি আরও ভাল পছন্দ করি।
লুকিয়াস

4
@ লুসিয়াস - বিটিডব্লিউ, প্রশ্নটি "এক্সটেনশনহীন" ফাইলগুলি চায় - সুতরাং রায়ানকে কেবল
সেগুলিই

@ jm666 আরে! কোনও ফোল্ডারে সমস্ত এক্সটেনশনবিহীন ফাইলগুলির নিজ নিজ এক্সটেনশনে নতুন নামকরণ করতে আমি কীভাবে আপনার কোড স্নিপেট পরিবর্তন করব mod (আমি ফাইল-বি $ ফাইল নাম কমান্ড দ্বারা সঠিক এক্সটেনশানগুলি সনাক্ত করছি))
সৌম্যজিৎ

24

আপনার ফাইলগুলি যেখানে রয়েছে সেই ডিরেক্টরিতে সিডি করুন এবং:

for f in *;do mv $f $f.jpg;done

কিছু কারণে এটি আমার পক্ষে কাজ করে তবে উদ্ধৃতি সহ শেঠের সমাধানটি তা করে না। (ওএসএক্স মাউন্টেন সিংহ বাশ)
ডেল্রোক্কো

4
for f in *;do mv "$f" "$f".jpg;doneফাইল নামগুলিতে ফাঁকা স্থান সমর্থন করার জন্য ব্যবহার করা ভাল ।
হৃত্বিক

এই মার্জিত এবং সহজ সমাধানের জন্য ধন্যবাদ - আমি এই উত্তরে একাধিকবার অবতরণ করেছি, তবে এটি মুখস্থ করতে পারে না বলে মনে হয়। # দেজাভু
টিম অ্যান্ডারসেন



1

আমার ক্ষেত্রে আমি filetype: সচেতন তাই আমি ব্যবহার ছিল না এমভি সাহায্যে কমান্ড ফাইল পরীক্ষা করার এবং সম্ভবত ফাইলের ধরন খুঁজে কমান্ড। এই সমাধানটি সমস্ত ফাইলের জন্য নিখুঁত হতে পারে না কারণ ফাইল কমান্ডটি ফাইল টাইপকে স্বীকৃতি দিতে পারে না তবে এটি বেশিরভাগ ক্ষেত্রেই আমার পক্ষে কার্যকর।

for f in *; do ext=$(file $f | awk '{print $2;}'); mv -n "$f" "$f.$ext"; done

অজকের ব্যবহার হ'ল কমান্ড ফাইল থেকে ফিরে আসা স্ট্রিংয়ের দ্বিতীয় শব্দটি সত্যই এক্সটেনশন stri


স্বয়ংক্রিয়ভাবে jpg এবং png পরিচালনা করে। এটি ব্যবহার করে এবং কাজ করে - অনেক অনেক ধন্যবাদ! কেবলমাত্র এক্সটেনশানগুলি হ'ল সিএপিএস। ছোট সমস্যা যদিও :)
krivar


0

আপনি একাধিক ফাইল মুভ ব্যবহার করতে পারেন । আমি এই প্রকল্পের একজন রক্ষণাবেক্ষণকারী। বাক্য গঠনটি সহজ।

mmf files*

এটি আপনার ফাইলের সমস্ত সম্পাদনাকারীর নাম বা এডিটরটি ডিফল্টরূপে খুলবে এবং আপনি Ctrl + v + G- র সাহায্যে সমস্ত ফাইলের নামের শেষে হাইলাইট করতে পারবেন, ফাইলটি সংরক্ষণ করুন, প্রস্থান করুন এবং এটি আপনার সমস্ত ফাইলের নাম পরিবর্তন করা হয়েছে


-2

রায়ান লি

যে ডিরেক্টরিতে ফাইল এক্সটেনশন নেই সেগুলির মধ্যে একাধিক ফাইলগুলিতে একটি ফাইল এক্সটেনশন যুক্ত করার জন্য সঠিক বাক্য গঠন ax

find . | while read FILE; do if [[ -n `file --mime-type "$FILE" | grep 'message/rfc822'` ]]; then  mv "$FILE" "$FILE".eml; fi; done;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.