একটি নির্দিষ্ট ফোল্ডারে একটি নির্দিষ্ট এক্সটেনশন সহ আমি সমস্ত ফাইল কীভাবে মুছতে পারি?


36

যদি আমি কারেন্ট / ওয়ার্কিং ডিরেক্টরিটি (এটিতে নেভিগেট করে cd) কোনও নির্দিষ্ট ডিরেক্টরিতে সেট করি এবং তারপরে টাইপ করুন:

rm *.xvg

এই আদেশ কি করবে? এটা কি সত্য যে উপরোক্ত আদেশ দেব শুধুমাত্র এক্সটেনশানের সঙ্গে ডিলিট ফাইল .xvg শুধুমাত্র পরিশ্রমী ডিরেক্টরির মধ্যে?

জিজ্ঞাসার আগে আমি এটি চেষ্টা করে নার্ভাস ছিলাম, কারণ আমি একেবারে নিশ্চিত হতে চাই যে উপরের কমান্ডটি কেবল ওয়ার্কিং ডাইরেক্টরিতে লকড.xvg ফাইলগুলি মুছে ফেলবে

উত্তর:


34

হ্যাঁ, rm *.xvgহবে শুধুমাত্র আপনার উল্লেখিত এক্সটেনশানের সঙ্গে ফাইল মুছে বর্তমান ডিরেক্টরি।

আপনি যে ফাইলগুলি আপনার ফাইলগুলি মুছতে চান তাতে আপনি নিশ্চিত আছেন তা নিশ্চিত করার একটি ভাল উপায় হ'ল pwdকমান্ডটি ব্যবহার করা যা আপনার বর্তমান ডিরেক্টরিটি প্রদর্শিত হবে এবং তারপরে lsআপনি যে ফাইলগুলি প্রত্যাশা করছেন তা খুঁজে পাওয়ার জন্য তা করুন।

আপনি যদি rmকমান্ড জারি করার বিষয়ে কিছুটা উদ্বিগ্ন হন তবে 2 টি জিনিস আপনি করতে পারেন:

  1. ls *.xvgএই আদেশ দ্বারা কোন ফাইলগুলি প্রভাবিত হবে তার একটি তালিকা দেখতে টাইপ করুন ।

  2. আপনার কাছে প্রচুর ফাইল না থাকলে আপনি সর্বদা -iকমান্ড লাইন সুইচটি ব্যবহার করতে পারেন rm(এর জন্যও বিদ্যমান cpএবং mv)। ব্যবহার rm -i *.xvgযদি এটা এটি মুছে ফেলতে ঠিক ছিল প্রতিটি ফাইলের জন্য অনুরোধ জানাতে হবে, তাই আপনি কি নিশ্চিতরূপে কিছুই আপনাকে আশা করিনি মোছা পেয়ে ছিল হতে পারে। (যদিও আপনার কাছে প্রচুর ফাইল থাকলে এটি ক্লান্তিকর হবে :)


1
এছাড়াও: rm -f {*.xvg,.*.xvg}লুকানো ফাইলগুলি সরাতে। এবং rm -R -f {*.xvg,.*.xvg}এছাড়াও ডিরেক্টরি মুছে ফেলার জন্য।
ডোর

20

আপনার দিরে নেভিগেট করার দরকার নেই, কেবল ব্যবহার করুন

rm /some/dir/*.xvg 

পথে আপনার টাইপো বা অনুরূপ ভুল রয়েছে, যেখানে / সোম / দির উপস্থিত নেই:

cd /som/dir
rm *.xvg

দুর্ঘটনাবশত বর্তমান ডিয়ারের সমস্ত .xvg-ফাইলগুলি মুছে ফেলবে। প্রথম কমান্ডটি দেবে না এবং আপনাকে আবার সিডি করতে হবে না।

বিকল্প উপায় হ'ল এটি ব্যবহার করা:

find /some/dir/ -maxdepth 1 -type f -name "*.xvg" -delete 

সন্ধান করুন / কিছু / দির / -ম্যাক্সডেপথ 1-প্রকারের এফ-নাম "* .xvg" - মুছে ফেলা আমার জন্য কাজ করেছে! সাব-ডিরেক্টরিতে ম্যাথিং ফাইলগুলি মুছে ফেলতে -maxdepth "n" ব্যবহার করুন যদি রাস্তা দেওয়া হয়
বিনয়

3

হ্যাঁ, rm *.xvgকেবলমাত্র .xvgআপনার বর্তমান ডিরেক্টরিতে শেষ হওয়া ফাইলগুলি মুছবে । কারণটা এখানে.

আপনি যখন এটির মতো কোনও কমান্ড টাইপ করেন, আপনি যে শেলটি ব্যবহার করছেন তা (কাজটি ধরা যাক বাশ ধরে নেওয়া যাক) এবং বাইনারি কমান্ডের মধ্যে কাজ বিভক্ত হয়ে যায়।

আপনি টাইপ করে বাইনারি সনাক্ত করতে পারেন which rm। এই ছোট প্রোগ্রামটি আনলিংক করা ফাইলগুলির যত্ন নেয়। এর মতো প্রোগ্রামগুলি কমান্ড লাইন থেকে শুরু করা যেতে পারে এবং prog arg1 arg2 arg3যখন তারা শুরু হয় তখন আর্গুমেন্টের একটি তালিকা পড়তে পারে। এর ক্ষেত্রে rm, এগুলি মুছে ফেলার জন্য সম্পূর্ণরূপে যোগ্য ফাইলের একটি তালিকা হিসাবে ব্যাখ্যা করা হয়। সুতরাং আপনি যদি ফাইলটি ধারণকারী কোনও ডিরেক্টরিতে থাকেন তবে foo.barটাইপিংয়ের delete 'foo.*'ফলাফল হবে rm: foo.*: No such file or directory। ফাইলের প্যাটার্নের চারপাশে একক উদ্ধৃতি নোট করুন, তারা শেলটিকে শেলটির মতো আর্গুমেন্টটি পাস করার জন্য বলে।

তবে আপনি যদি rm *.barএকই ডিরেক্টরিতে টাইপ করেন তবে এটি ফাইলটি মুছে ফেলবে। এখানে যা ঘটছে তা হ'ল আপনার শেলটি, যা আপনি প্রোগ্রামটি কমান্ড টাইপ করতে ব্যবহার করছেন তা কমান্ডটিতে আর্গুমেন্টগুলি প্রেরণের আগে কিছু রূপান্তর করছে। এর মধ্যে একটিতে 'ফাইলের নাম সম্প্রসারণ' বলা হয়, অন্যথায় 'গ্লোব্বিং' নামে পরিচিত। আপনি এখানে বাশ ফাইল নামের বিস্তারের একটি তালিকা দেখতে পাচ্ছেন । সর্বাধিক প্রচলিত একটি হল *, যা বর্তমান ডিরেক্টরিতে ফাইলের নামগুলিতে প্রসারিত।

কর্মক্ষেত্রে গ্লোবগুলিকে দেখার একটি সহজ উপায় হ'ল ব্যবহার করা echoযা শেলটির মধ্য দিয়ে দেওয়া সমস্ত আর্গুমেন্টকে প্রিন্ট করে। সুতরাং echo *একই ডিরেক্টরি টাইপিং আউটপুট হবে foo.bar। সুতরাং আপনি যখন টাইপ করবেন rm *.bar, আসলে যা ঘটছে তা হ'ল শেলটি আর্গুমেন্টের তালিকায় প্রসারিত করে foo.bar, তারপরে এটি rmকমান্ডে প্রেরণ করে।

গ্লোববিং নিয়ন্ত্রণের কিছু উপায় রয়েছে। উদাহরণস্বরূপ, বাশের সাম্প্রতিক সংস্করণগুলিতে আপনি গ্লোবস্টার নামে একটি বিকল্প চালু করতে পারেন যা পুনরাবৃত্তির সম্প্রসারণ করবে। টাইপিং সমস্ত সাবফোল্ডারগুলিতে echo **/*.barশেষ হওয়া সমস্ত ফাইলের একটি তালিকা প্রদর্শন করবে .bar। সুতরাং rm **/*.barগ্লোব স্টার সক্ষম বাশে টাইপ করা প্রকৃতপক্ষে পুনরাবৃত্তভাবে সাবফোল্ডারগুলিতে সমস্ত মিলে যাওয়া ফাইল মুছে ফেলবে।


1

আদেশ:

  rm ./*.pgm

আমার জন্য কাজ কর

COMMAND:

rm *.pgm

ত্রুটি আদেশ দেয় (পোলিশ ভাষায় অনুবাদিত):

rm: wrong option - '1'
Use "rm ./-1000.pgm" to delete the file '-1000.pgm'.
Write "rm --help" for information.

মধ্যে

bash --version
GNU bash, wersja 4.4.19(1)-release (x86_64-pc-linux-gnu)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.