আমি কীভাবে একটি ডিরেক্টরিতে সমস্ত কিছু মুছব?


25

আমি কীভাবে কোনও ডিরেক্টরিতে লুকানো ফাইল এবং ডিরেক্টরিগুলি মুছতে পারি?

এখনই, আমি নিম্নলিখিত ব্যবহার:

rm -rf *
rm -rf .*

5
আপনি তাদের একত্রিত করতে পারেন rm -rf .* *
ব্যবহারকারী অজানা

2
আপনি একটি ডিরেক্টরি উপরে যেতে পারেন এবং তারপরে চালাতে পারেনrm -rf yourdirectory/*
shreyansp

1
দুঃখিত লুকানো ডিরেক্টরি অংশ মিস। পূর্ববর্তী ব্যবহারকারীদের সমাধানটি এতে covers
েকে রাখে

আপনার পোস্ট করা দ্বিতীয় বিকল্পটি খুব বিপজ্জনক। এটি ..ডিরেক্টরিটি মিলবে যা উপরের ডিরেক্টরিতে যা আছে তা মুছে ফেলবে ।
রিচার্ড পিটারসন

উত্তর:


17

সরল এবং সোজা এগিয়ে:

find -delete 

ডিরেক্টরি এবং লুকানো ফাইল অন্তর্ভুক্ত। কমপক্ষে gnu-find জানেন -delete, আপনার findভিন্ন হতে পারে।


1
ডিরেক্টরি মুছে ফেলা এড়াতে, ব্যবহার করুন find /path -delete -mindepth 1
অরডভেন

@ অরোদভেন: সন্ধান করুন-মুছে ফেলা ডিরেক্টরিটি মুছে ফেলবে না, যেখানে আপনি কমান্ডটি চালু করবেন (যেমন প্রশ্নে আরএম আছে)।
ব্যবহারকারীর অজানা

11

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


7
সুতরাং কিভাবে এটি আরও সহজ। 'সাবধান থাকুন' কোনও উত্তর নয়। কেউ বুঝতে পারে না কেন কেউ কেন একটি ডিরেক্টরি মুছে ফেলে এবং এটি আবার তৈরি করে।
ব্যবহারকারী অজানা

আমি "খালি ডিরেক্টরি হিসাবে" বাক্যাংশটি যুক্ত করেছি, সম্ভবত এটি আরও পরিষ্কার।
ক্রিস কুইনেল

2
না, এটি ব্যাখ্যা করে না যে আপনি কেন কোনও ডিরেক্টরি মুছবেন এবং তা আবার তৈরি করবেন। বিটিডব্লিউ।, তারিখ / সৃষ্টিরও সময় বিবেচনা করার বিষয়গুলি।
ব্যবহারকারী অজানা 23

2
যদি সেই ডিরেক্টরিটি কোনও প্রক্রিয়াটির বর্তমান চলমান ডিরেক্টরি হয় তবে আপনি সমস্যার মধ্যে পড়তে পারেন। এছাড়াও, আপনি যদি ডিরেক্টরিটি সরিয়ে থাকেন তবে আপনি এর অনুমতি এবং মালিকানা সম্পর্কে তথ্য সরিয়ে ফেলবেন।

8
rm -rf -- * .[!.]* ..?*

তিনটি প্যাটার্নের প্রত্যেকটিই নিজের সাথে প্রসারিত হয় যদি এটি কোনও কিছুর সাথে মেলে না তবে এটি এখানে কোনও সমস্যা নয় যেহেতু আমরা সমস্ত কিছুর সাথে মিল রাখতে চাই এবং rm -fঅস্তিত্বহীন যুক্তি উপেক্ষা করি।

.*মিলবে.. যে নোট ।


5

ধরে নেওয়া বাশ 4+:

shopt -s dotglob
rm -rf -- *
##or:
rm -rf ./*

ডটগ্লোব সক্ষম থাকলে, *সমস্ত ফাইল এবং ডিরেক্টরিতে প্রসারিত হয়, এমনকি যেগুলি শুরু হয় .- তবে প্রসারিত হয় না. এবং ..তাই এটি ব্যবহার করা নিরাপদ rm



2

ওহ আমার Zsh

rm -rf (.|)*

আবার, এটি কেবল Zsh এর জন্য।


2
অথবা *(D)( Dগ্লোব কোয়ালিফায়ার glob_dotsএই প্যাটার্নটির বিকল্পটি চালু করে )।
গিলস 'অশুভ হওয়া বন্ধ করুন'

অথবা rm -rf {.,}*(ব্যাশ মতো zsh অন্তর্ভুক্ত নয় .এবং ..মধ্যে {.,}*, অন্তত আমার মেশিনে)।
Sasha

1

কিভাবে ব্যবহার সম্পর্কে find। আমি মনে করি এটি সাধারণত একটি ভাল পছন্দ, যখন আপনাকে সাব-ডিরেক্টরিগুলির মাধ্যমে খনন করতে হবে।

find . -type f -exec rm {} \;

1
একটি-মোছা সুইচ আছে, যাতে আপনি ডিরেক্টরি মুছতে পারেন। (কমপক্ষে gnu-find এ)
ব্যবহারকারী অজানা

এটি সাব
শাশা

-2

ব্যবহার করে দেখুন rm -rf *?*। এটি সাধারণ এবং লুকানো ফাইল মুছে ফেলবে।


4
আমার জানা কোনও শেলের মধ্যে নয়।
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

আপনি সঠিক. এটি উপ-ডিরেক্টরি মুছে না।
গ্লিমিডিম

4
সমস্যা আরো হতে যে সম্ভাবনা রয়েছে *?*মেলে না হবে "বিন্দু" ফাইল / dirs (যতক্ষণ না আপনি সক্ষম করেছেন dotglobবিকল্পটি ব্যাশ , GLOB_DOTSবিকল্প zsh , অথবা যাই হোক না কেন শেল আপনি ব্যবহার করছেন জন্য একটি সমতুল্য)।
ক্রিস জনসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.