Centos এ কোনও ডিরেক্টরিতে কীভাবে মুছে ফেলা যায়


9

আমাকে সেন্টোসের কোনও ফোল্ডারের সমস্ত সামগ্রী মুছতে হবে তবে ফোল্ডারটি নিজেই নয়।

উদাহরণস্বরূপ: আমার কাছে "এমওয়াইফোল্ডার" নামে একটি ফোল্ডার রয়েছে যার মধ্যে সাবফোল্ডারগুলি FOLD_1, FOLD_2, FOLD_3, FOLD_4 ... ইত্যাদি এবং কিছু ফাইল রয়েছে। আমার এই সমস্ত ফোল্ডার এবং ফাইলগুলি মুছতে হবে তবে ধারক ফোল্ডারটি মাইফোল্ডার নয়। পূর্ববর্তী প্রক্রিয়ার ফলাফলগুলি পরিচালনা করার জন্য আমার এই ডিরেক্টরিটি প্রয়োজন।

আমি rm -rf কমান্ড দিয়ে চেষ্টা করেছি , কিন্তু এটি কনটেইনার ফোল্ডারটিও মুছে ফেলে।

উত্তর:


11

পরিবর্তে ফোল্ডারের সামগ্রীগুলি মুছুন।

rm -r MYFOLDER/*

1
নোট করুন যে এটি মাইফোল্ডারের মধ্যে ফাইল / ডিরেক্টরি লুকিয়ে রাখেনি
টাইলার

1
@ টাইলারল: আপনি যদি shopt -s dotglobপ্রথম সেট করেন তবে তা করে ।
jgoldschrafe

এর জন্য আপনাকে প্রতিটি উপ-ডিরেক্টরিতে y / n অবতরণ করতে ম্যানুয়ালি অনুমোদনের প্রয়োজন, যা সম্পূর্ণ সময় নষ্ট। সঠিক কমান্ডটি সমস্ত স্বয়ংক্রিয়ভাবে পরিচালনা করবে যাতে আপনি 50 টি প্রম্পটে আটকে না যান।
কোডমেড

rm -R /path/to/myfolder/*প্রতিটি ফাইল এবং সাবফোল্ডার মোছার অনুমোদনের অতিরিক্ত অনুরোধ এড়াতে সঠিক বাক্য গঠন। মূলধন নোট করুন R
কোডমেড

5

তুমি ব্যবহার করতে পার:

rm -r MYFOLDER/{.[^.],.??*}

এটি লুকানো ফাইল এবং ফোল্ডারগুলিও মুছে দেয়। মাইফোল্ডার ডিরেক্টরিতে আপনার যদি খুব বেশি ফাইল থাকে তবে তার পরিবর্তে আপনার চালানো উচিত:

ls MYFOLDER/{.[^.],.??*}|xargs rm -r

আমার meta/ডিরেক্টরিতে আমার 500k এরও বেশি ফাইল রয়েছে , তাই আমি xargs বিকল্পটি চেষ্টা করতে চেয়েছিলাম, তবে আমি এই ত্রুটি বার্তাগুলি পেয়েছি: ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand
আন্দ্রে এসকে

1
আপনি bashশেল ব্যবহার করছেন তা নিশ্চিত করুন । শেলটি অবশ্যই ফাইলের নিদর্শনগুলির জন্য "ব্রেস প্রসারণ" এবং "নিয়মিত অভিব্যক্তি" সমর্থন করবে।
মিরসিয়া ভুটকোভিচি

3

আমার মতে সবচেয়ে সহজ উপায় হ'ল নিজেই পুরো ডিরেক্টরিটি মুছে ফেলা এবং তারপরে ফোল্ডারটি পুনরায় তৈরি করা। এমন পরিস্থিতি রয়েছে যখন এটি কোনও ভাল সমাধান নয় (যেমন একটি অবিরত স্ক্রিপ্টস বা আরও জটিল পাইপলাইন), তবে আপনি কেন ফোল্ডারটি মুছতে চান না তা নির্দিষ্ট করেননি।

rm -rf foldername
mkdir foldername

উফ। আপনি নির্দিষ্ট করেছেন (আমি আপনার পোস্টটি আবার পড়ি)। ঠিক আছে, তবুও, মোছা এবং পুনরুদ্ধার কাজ করতে পারে। বিশেষত যদি আপনি চেইন কমান্ডগুলি একসাথে পছন্দ করেন তবে

rm -rf foldername && mkdir foldername

অথবা

rm -rf foldername; mkdir foldername

কখনও কখনও প্যারেন্ট ফোল্ডারে আপনার অনুমতি নেই বা আপনি অজানা নির্দিষ্ট বৈশিষ্ট্যগুলি সংরক্ষণ করতে চান। উদাহরণস্বরূপ আপনি আপনার হোম ফোল্ডারটি রুটবিহীন ব্যবহারকারী হিসাবে মুছতে পারবেন না তবে আপনি এর অধীনে যে কোনও কিছু মুছতে পারেন।
মিরসিয়া ভুটকোভিচি

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। +1
কোডমেড



0

আমি এই বিকল্পটি দৃ strongly়ভাবে প্রস্তাব দিচ্ছি (এটি নামের ফাঁকা জায়গাগুলি সহ ফাইলগুলিও সরিয়ে দেয়):

find MYFOLDER/ -type f -print0 | xargs -0 rm -f
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.