আমি পেয়েছি সবচেয়ে কাছাকাছি
# rm /path/to/directory/*.*
তবে যে ফাইলগুলির এক্সটেনশন নেই তাদের জন্য এটি কাজ করে না ...
আমি পেয়েছি সবচেয়ে কাছাকাছি
# rm /path/to/directory/*.*
তবে যে ফাইলগুলির এক্সটেনশন নেই তাদের জন্য এটি কাজ করে না ...
উত্তর:
লিনাক্স এক্সটেনশন ব্যবহার করে না। নামটি কোনও এক্সটেনশান করতে চান কিনা তা সিদ্ধান্ত নেওয়া ফাইলটির স্রষ্টার উপর নির্ভর করে। এটি কোন ধরণের ফাইলের সাথে লিনাক্স করছে তা নির্ধারণের জন্য লিনাক্স 1 ম বাইটের দিকে তাকান।
ডিরেক্টরিতে সমস্ত কিছু অপসারণ করতে:
rm /path/to/directory/*
আপনি -r
বিকল্পটি ব্যবহার করতে পারেন , উদাহরণস্বরূপ:
rm -r /path/to/directory/*
আপনি যে ডিরেক্টরিটির বিষয়বস্তু সরিয়ে ফেলছেন সেই ডিরেক্টরিতে কোনও উপ ডিরেক্টরি (তাদের সমস্ত সামগ্রী সহ) অপসারণ করতে। অন্যথায় এটি আপনাকে জানাতে একটি ত্রুটি প্রদর্শন করবে এটি ডিরেক্টরিটি সরিয়ে দিচ্ছে না।
all files
;) এর *.*
অর্থ হ'ল .
কোথাও নামে থাকা সমস্ত ফাইল
*a*
অর্থ শূন্য বা আরও বেশি অক্ষর, তারপরে a
শূন্য বা আরও বেশি অক্ষর। ফাইলের মেলে দিবে happy
, apple
, a
বা la
।
ফোল্ডারটির সমস্ত সামগ্রী ( সমস্ত অভ্যন্তরীণ ফোল্ডার সহ ) মুছে ফেলার জন্য :
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/to
rm -rf the/directory/*
এই সমস্যা এড়ানোর জন্য, আপনি ব্যবহার করতে পারেন '
একক উদ্ধৃতি '
( প্রসারিত না শেল ভেরিয়েবল) অথবা "
ডাবল কোট "
( বিস্তৃতি শেল ভেরিয়েবল):
rm -rf "/path/to the/directory/"*
কোথায়:
rm
- এর অর্থ " অপসারণ "-f
- এর অর্থ দাঁড়ায় " বল " যার অর্থ যখন আপনি কোনও সংরক্ষণাগার অপসারণ করতে চান তবে আপনাকে জিজ্ঞাসা / অনুরোধ করতে চাইবে না, উদাহরণস্বরূপ helpful-r
- এর অর্থ " রিকার্সিভ " যার অর্থ আপনি প্রতিটি ফোল্ডারে পুনরাবৃত্তভাবে যেতে চান এবং সমস্ত কিছু সরাতে চান।rm -rf /path/to/directory/*
উদাহরণস্বরূপ ফোল্ডারে কোনও লুকানো ফাইল সরান না .htaccess
। হতে পারে rm -rf /path/to/directory/.
? চেষ্টা করে দেখেনি।
rm -rf /path/to/directory/.*
কেবলমাত্র নির্দিষ্ট ডিরেক্টরিতে লুকানো ফাইল (গুলি) মুছে দেয়। লুকানো ফাইলগুলি মুছতে, দৌড়ানোর shopt -s dotglob
আগে দৌড়াতে @ রিনজউইন্ডের উত্তর সম্পর্কে @ দানজল এর মন্তব্যে তাকান rm -rf /path/to/directory/*
।
rm -rf /path/to/directory/.*
আমার সিস্টেমে আইটেমগুলি মুছে ফেলার কারণে /path/to
। ভাগ্যক্রমে, আমি সবেমাত্র আমার সম্পূর্ণ ডেটা আলাদা ডিস্কে ব্যাক আপ করেছিলাম। বলা বাহুল্য, rm -rf /path/to/directory/.*
আপনি নিজের কম্পিউটারটিকে পৃথক / সুরক্ষিত স্থানে ব্যাক আপ না করলে কমান্ডটি জারি করবেন না !
ডিরেক্টরিতে সমস্ত ফাইল মুছে ফেলার জন্য (লুকানো ফাইল এবং উপ-ডিরেক্টরি সহ) চালান:
rm -rf /path/to/directory/{*,.*}
./
এবং ../
, তবে এটি লুকানো ফাইলগুলি মুছে ফেলবে।
rm -r $(pwd)/{*,.*}
আপনি যদি / पथ / থেকে / ডিরেক্টরিতে কেবল ফাইলগুলি মুছতে চান তবে আপনি এটি করতে পারেন
find /path/to/directory -type f -print0| xargs -0 rm
অথবা
find /path/to/directory -type f -exec rm '{}' \;
আপনি এর সাহায্যে লোড করতে পারেন find
, সুবিধাটি হ'ল এটি যা আপনি পাইপ না করে যা পাওয়া যায় তার তালিকা তৈরি rm
করতে পারেন যাতে আপনি শুরু করার আগে দেখতে পাবেন কী কী মুছে ফেলা হবে।
GNU find
একটি -delete
শিকারী হিসাবে আপনি যদি এখনও ব্যবহার করতে চান তবে এর সাথে -exec
প্রতিস্থাপন \;
করা কলগুলি একত্রিত করবে, দক্ষতা বাড়িয়ে +
তুলবে rm
।
ডিরেক্টরিতে সমস্ত ফাইল এবং ডিরেক্টরিগুলি ( লুকানো রয়েছে সহ ) মুছতে , আপনি নিম্নলিখিতগুলি চেষ্টা করতে পারেন:
ফোল্ডারটি মুছুন, তারপরে এটি পুনরায় তৈরি করুন
rm -rf dir_name && mkdir dir_name
ব্যবহার find
find dir_name -mindepth 1 -delete
এখানে আমরা -mindepth 1
ডিরেক্টরি dir_name নিজেই বাদ দিতে নির্দিষ্ট করি ।
নীচের লিঙ্কটি একবার দেখুন:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-d ডিরেক্টরি
আপনি যদি সমস্ত উপ ডিরেক্টরি এবং ডিরেক্টরি নিজেই সরাতে চান তবে আপনি এটি ব্যবহার করতে পারেন rm -rf /path/to/directory
। তবে সর্বদা রিটার্ন rm -rf
টিপানোর আগে আপনার লাইনটি ডাবল-চেক করুন, প্রচুর পরিমাণে হাবুডের কারণ হতে পারে, উদাহরণস্বরূপ, যদি আপনি অতিরিক্ত স্ক্রুরের অনুমতি প্রাপ্ত হওয়ার সাথে সাথে প্রথম স্ল্যাশের পরে কোনও স্থান accidentোকেন তবে ...
যেহেতু আমি নিজেই এটি অনুসন্ধান করি তখন এই প্রশ্নটি ক্রমাগত গুগলের শীর্ষে থাকে:
অন্যান্য উত্তরগুলি বিভিন্ন সমস্যায় ভুগছে:
এর মধ্যে কয়েকটি অন্তর্ভুক্ত .
এবং ..
যা গোলমাল, বিভ্রান্তিকর এবং বিরক্তিকর।
তাদের মধ্যে কিছু লুকানো ফাইলগুলি (বিন্দু দিয়ে শুরু হওয়া ফাইলগুলি) ভুলে যায়।
ডিরেক্টরি মুছে ফেলার অনুমতি দেওয়ার জন্য তারা সঠিক (গভীরতম) প্রথম স্থানে মুছে না।
তারা অন্যান্য (মাউন্ট করা) ফাইল সিস্টেমে অবতরণ করে যা প্রায়শই অনাকাঙ্ক্ষিত থাকে।
অতিরিক্ত প্যারামিটারগুলির সাথে সঠিকভাবে প্রসারিত করা তাদের পক্ষে কঠিন (আরও নীচের অংশে)।
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
সামগ্রীটি মুছে ফেলা থেকে বাদ দেওয়ার আগে
-depth
পতাকা রয়েছে find
।
-delete
সঙ্গেfind
? -delete
গভীরতা প্রথম। আপনি ইতিমধ্যে এর find
সাথে নন-পসিক্স ধরে নিয়েছেন -printf
, সুতরাং আপনি ঠিক তেমন ব্যবহার করতে পারেন -delete
বা-depth -print0 | xargs -0 rm
-not \( -path "$DIR/subdir" \)
... তবে আমার কি হয়? কেন?
আপনি cd
ডিরেক্টরিতে প্রবেশ করতে পারেন এবং তারপরে rm *.*
ডস-এর মতো কমান্ডটি চালাতে পারেন যদি আপনি মনে রাখেন।
shopt -s dotglob
আগে চালিত লুকানো ফাইলগুলি মুছতে চানrm (...)