কিভাবে একটি ডিরেক্টরি থেকে সব ফাইল মুছে ফেলুন?

নিকটতম আমি অর্জিত করেছি

# rm /path/to/directory/*.*

কিন্তু যে একটি এক্সটেনশন আছে না যে ফাইল জন্য কাজ করে না...

লিনাক্স এক্সটেনশন ব্যবহার করে না. এটা নামের একটি এক্সটেনশন থাকা উচিত কিনা তা সিদ্ধান্ত নিতে ফাইলের স্রষ্টা আপ হয়. লিনাক্স এটা সাথে ডিল করা হয় ফাইল কি ধরনের চিন্তা প্রথম কয়েক বাইট এ দেখায়.

  • সব মুছে ফেলার জন্য অ লুকানো ফাইল* একটি ডিরেক্টরি ব্যবহার করুন:

    rm /path/to/directory/*

    এই মোডে এটি শুধুমাত্র ফাইল মুছে দেওয়ার অনুমতি দেওয়া হয়, কারণ যাইহোক, এই, প্রতিটি সাব-ডিরেক্টরি জন্য একটি ত্রুটি প্রদর্শন করবে.

  • একটি ডিরেক্টরিতে সমস্ত অ-লুকানো ফাইল এবং উপ-ডিরেক্টরি (তাদের সমস্ত বিষয়বস্তু সহ) অপসারণ করতে ব্যবহার করুন:

    rm -r /path/to/directory/*

* লুকানো ফাইল এবং ডিরেক্টরি যাদের নাম দিয়ে শুরু হয় . (বিন্দু) চরিত্র, যেমন: .hidden-file অথবা .hidden-directory/. মনে রাখবেন যে, বাশে, যদি dotglob অপশন (যা ডিফল্টরূপে বন্ধ) সেট করা হয়, rm তারা যখন অন্তর্ভুক্ত করা হবে, কারণ খুব লুকানো ফাইল কাজ করবে * ফাইলের নাম আর্গুমেন্ট তালিকা প্রদান শেল দ্বারা প্রসারিত হয়.

  • এর সমস্ত বিষয়বস্তু সহ একটি ফোল্ডার অপসারণ করতে (সমস্ত অভ্যন্তর ফোল্ডার সহ):

    rm -rf /path/to/directory
  • সব মুছে ফেলার জন্য ফোল্ডারের বিষয়বস্তু (সমস্ত অভ্যন্তর ফোল্ডার সহ) তবে ফোল্ডারটি নিজেই নয়:

    rm -rf /path/to/directory/*

    অথবা, যদি আপনি নিশ্চিত করতে চান যে লুকানো ফাইল / ডিরেক্টরিগুলিও সরানো হয়েছে:

    rm -rf /path/to/directory/{*,.*}
  • এই ফোল্ডার-এ কপি করোনা অভ্যন্তরীণ ফোল্ডারগুলি সরানো হচ্ছে):

    rm -f /path/to/directory/{*,.*}

সতর্কতা: আপনি আপনার পাথ স্পেস আছে, সবসময় কোট ব্যবহার করতে ভুলবেন না.

rm -rf /path/to the/directory/*

সমান 2 পৃথক rm -rf কল:

rm -rf /path/torm -rf the/directory/*

এই সমস্যা এড়াতে, আপনি ব্যবহার করতে পারেন 'একক উদ্ধৃতি'(শেল ভেরিয়েবলগুলির এমনকি সমস্ত বিস্তৃতি প্রতিরোধ করে) বা "ডাবল উদ্ধৃতি"(শেল ভেরিয়েবল সম্প্রসারণ করতে পারবেন, কিন্তু অন্যান্য প্রসারণও বাধা দেয়):

rm -rf "/path/to the/directory/"*

কোথায়:

  • rm - জন্য দাঁড়িয়েছে অপসারণ
  • -f - জন্য দাঁড়িয়েছে বল উদাহরণস্বরূপ, যদি আপনি কোনও সংরক্ষণাগার সরাতে চান তবে আপনাকে জিজ্ঞাসা/অনুরোধ করতে চান না তখন এটি সহায়ক
  • -r - জন্য দাঁড়িয়েছে রিকার্সিভ যা আপনি পৌনঃপুনিকভাবে প্রতি ফোল্ডার নিচে যান এবং সবকিছু অপসারণ করতে চান এর মানে হল যে.

ডিরেক্টরিতে সমস্ত ফাইল মুছে ফেলার জন্য (লুকানো ফাইল এবং সাবডিরেক্টরি সহ) চালান:

rm -rf /path/to/directory/{*,.*}

সব ফাইল এবং ডিরেক্টরি মুছে দিন (সহ লুকানো ক্যামেরা বেশী) একটি ডিরেক্টরিতে, আপনি নিম্নলিখিত চেষ্টা করতে পারেন:

  • ফোল্ডারটি মুছুন, তারপরে এটি পুনরায় তৈরি করুন

    rm -rf dir_name && mkdir dir_name
  • ব্যবহার করুন find

    find dir_name -mindepth 1 -delete  

এখানে আমরা উল্লেখ করি -mindepth 1 ডিরেক্টরিটি বাদ দিতে ডিআর_নাম নিজেই.
নিম্নলিখিত লিঙ্কটি একবার দেখুন:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory

আপনি যদি কেবলমাত্র/পাথ/টু / ডিরেক্টরিতে ফাইলগুলি মুছতে চান তবে আপনি এটি করতে পারেন

find /path/to/directory -type f -print0| xargs -0 rm 

অথবা

find /path/to/directory -type f -exec rm '{}' \;

আপনি এর সাথে লোড করতে পারেন find, সুবিধাটি হ ' ল আপনি পাইপিং ছাড়াই যা পাওয়া যায় তা তালিকাভুক্ত করতে পারেন rm তাই আপনি যদি আপনি শুরু করার আগে মুছে ফেলা হবে তা দেখতে পারেন.

আপনি যদি সমস্ত সাবডিরেক্টরি এবং ডিরেক্টরিটি নিজেই সরাতে চান তবে আপনি ব্যবহার করতে পারেন rm -rf /path/to/directory. তবে রিটার্ন চাপ দেওয়ার আগে সর্বদা আপনার লাইনটি ডাবল-চেক করুন, rm -rf আপনি দূর্ঘটনাক্রমে সুপার ইউজার অনুমতি থাকার সময় প্রথম স্ল্যাশ পরে একটি স্থান সন্নিবেশ যদি যেমন, পাশাপাশি ক্ষিতি প্রচুর হতে পারে...

যেহেতু আমি নিজেই এটি অনুসন্ধান করার সময় এই প্রশ্নটি ক্রমাগত গুগলের শীর্ষে থাকে:

অন্যান্য উত্তরগুলি বিভিন্ন সমস্যায় ভোগে:

  1. তাদের মধ্যে কিছু অন্তর্ভুক্ত . এবং .. যা কোলাহলপূর্ণ, বিভ্রান্তিকর, এবং বিরক্তিকর.

  2. তাদের কিছু লুকানো ফাইল (ফাইল একটি বিন্দু দিয়ে শুরু) ভুলবেন.

  3. তারা ডিরেক্টরি মুছে ফেলার অনুমতি একটি সঠিক (গভীরতম প্রথম) যাতে মুছে ফেলা হবে না.

  4. তারা অন্যান্য (মাউন্ট করা) ফাইল সিস্টেমে নেমে আসে, যা প্রায়শই অনাকাঙ্ক্ষিত হয়

  5. তারা অতিরিক্ত পরামিতি সঙ্গে সঠিকভাবে প্রসারিত করা কঠিন (নিচে যে আরো).

সুতরাং, একটি ডিরেক্টরিতে সমস্ত ফাইল এবং ফোল্ডারগুলি পুনরাবৃত্তভাবে মুছতে, এটি করুন:

find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --

মনে রাখবেন যে আমি একটি যোগ করেছি -xdev মাউন্টগুলিতে অবতরণ রোধ করার যুক্তি (যেমন /proc ইত্যাদি).

কেন না -depth অথবা -delete?

লোকেরা আমাকে ক্রমাগত এটির জন্য ডাউনভাইট করা সত্ত্বেও, এই পদ্ধতিগুলির একটি নেতিবাচক দিক রয়েছে: মনে হয় না যে তারা অনুমতি দেওয়ার জন্য যথেষ্ট এক্সটেনসিবল -pruneএকটি সাবডিরেক্টরি ডাউনলোড করা (আরও সমস্যা প্রবর্তন না করে) এই পদ্ধতির বিপরীতে, আপনি সন্নিবেশ করতে পারেন

-not \( -path "${DIR}/subdir" -prune \)

এর আগে -mindepth বাদ দেওয়ার যুক্তি subdir তার বিষয়বস্তু মুছে ফেলা হচ্ছে থেকে.

আপনি করতে পারেন cd ডিরেক্টরিতে এবং তারপরে কমান্ডটি চালান rm *.* শুধু ডস মত যদি আপনি মনে রাখবেন.

বর্তমান ডিরেক্টরি মুছে ফেলতে, আপনি উদাহরণস্বরূপ ব্যবহার করতে পারেন rm -d ./*

- ডি পাশাপাশি ডিরেক্টরি মুছে বলে.

এখানে উত্তর দেখুন, এটি কোনও সতর্কতা এবং ডিরেক্টরি মুছে ফেলার পাশাপাশি লুকানো ফাইলগুলি সরাতে পারে ubuntu - Delete contents but not directory in Linux? - Stack Overflow

সত্যিকারের উত্তর যুক্ত করার মতো আমার যথেষ্ট খ্যাতি নেই, তবে শপ্ট-এস ডটগ্লব এবং & আরএম /পাথ/টু/ডিরেক্টরি / * 'বাশে সমাধান ব্যবহার করার সময়,' শপ্ট-এস ডটগ্লব এবং & আরএম /পাথ/টু/ডিরেক্টরি/*)(প্রথম বন্ধনী সহ)শপ্ট-এস ডটগ্লব` এই কমান্ডের বাইরে ফাঁস হতে বাধা দেবে (বন্ধনীর একটি সাবশেল অন্তর্ভুক্ত কমান্ড চালানো .)