আমি কীভাবে 'আরএম' ফাইলগুলিকে ট্র্যাশ ক্যানে নিয়ে যেতে পারি?


62

আমি একটি দৈনিক ভিত্তিতে টার্মিনাল ব্যবহার করেন, আমি প্রায়ই ব্যবহার করা হবে rm DirectoryName। মাঝে মাঝে আমি একটু পাগল হয়ে যাই rm *। আপনি যেমন কল্পনা করতে পারেন, এই শেনানীগানরা মাঝে মাঝে ফিরে এসে আমাকে মুখে আঘাত করে। কেউ কীভাবে জানে যে আমি কীভাবে ম্যাপিং তৈরি করি তাই rm whateverসবকিছু ট্র্যাশক্যানে সরানো হয় যা আমি নিজে নিজে মুছতে পারি।


3
আপনি করতে পারেনmv /file/to/delete ~./Trash

6
অন্য স্ক্রিপ্টগুলি না ভেঙে আরএম এর মতো নির্ভুল সরঞ্জামে প্রশিক্ষণের চাকা রাখা শক্ত। এরকম কিছু alias rm=/bin/rm -iআপনাকে নিজের ক্রেজি থেকে নিরাপদে প্রশিক্ষণ দেওয়া উচিত । এছাড়াও - আপনি কোন ট্র্যাশ ডিরেক্টরিটি ব্যবহার করতে চান? এটি মাতাল হয়ে যায় যেহেতু ম্যাক ওএস এক্সের প্রতিটি ভলিউমের জন্য ট্র্যাশ ডিরেক্টরি রয়েছে এবং তেমনি ব্যবহারকারীর স্তরের ট্র্যাশ ক্যানও রয়েছে।
বিমিক

1
আপনি যদি zsh ব্যবহার করেন, ডিফল্টরূপে এটি আপনাকে rm *rm /path/*
জিজ্ঞাসা

1
আমাকে এমন লোকদের তালিকায় যুক্ত করুন যারা উত্তর দেওয়ার পক্ষে এটি এমন বিপজ্জনক প্রশ্ন বলে মনে করে। আপনি যদি আমার পক্ষে কাজ করেন তবে আমি শেল প্রম্পটে "কিছুটা পাগল হওয়ার" প্রতিশ্রুতি না দিয়ে এবং 'আরএম' এর মতো কমান্ড জারি না করা পর্যন্ত আমি আপনাকে চড় মারার লড়াই করব না। আমি এটিও দ্বিগুণ নিশ্চিত করতে চাই যে আমি যে কোনও মেশিন ব্যবহার করি বা তার দায়বদ্ধতা নেই তার জন্য আপনার কাছে সুডো প্রশাসনিক সুবিধা নেই। আমি "আরএম" বা "সুডো" টাইপ করার আগে আমি শারীরিকভাবে দাঁড়িয়ে নিজেকে জিজ্ঞাসা করি যে আমি কি 100% নিশ্চিত যে আমি কী করতে যাচ্ছি তার ফলাফলগুলি আমি বুঝতে পারি। হতে পারে আপনার কেবল "আরএম-আরএফ" করা দরকার এবং কিছুক্ষণের জন্য ভুগতে হবে।
উইলফ্রেড স্মিথ ২৮:১২

আমার মন্তব্যটি নিষ্ঠুর মনে হলেও আগাম ক্ষমা চাইলেও খুব প্রশ্ন আমাকে ভয়ঙ্কর করে।
উইলফ্রেড স্মিথ

উত্তর:


79

খারাপ ধারণা

rmফাইলগুলি ট্র্যাশে স্থানান্তর করতে ব্যবহার করা আগাছার মতো। এটি সাধারণ এবং আনন্দদায়ক তবে ভবিষ্যতে আপনার পক্ষে খারাপ হতে পারে । ;)

ব্যবহার করার সময় আপনার নিজেকে সত্যই নিয়ন্ত্রণ করা দরকার rm


আরএম ব্যবহার করবেন না

কল্পনা করুন , আপনি ট্র্যাশগুলিতে সরানো এবং এটির অভ্যাস তৈরি করতে অভ্যস্ত হন। অবশ্যই, আপনার সিস্টেমটি নিরাপদ তবে আপনি যখন কোনও বন্ধুর (বা আপনার স্ত্রীর বা আপনার সাহেবের) নোটবুকে লগ ইন করবেন এবং কিছু মুছতে হবে? আপনি প্রকৃতপক্ষে আসলটি ব্যবহার করবেন rm- সেই ফাইলগুলি চিরতরে মোছা। এটি একটি খারাপ অভ্যাস এবং এটি আপনার জানা দরকার।

সুতরাং পরিবর্তে, ইনস্টল করুন rmtrashএবং এটি ব্যবহার করার অভ্যাস করুন:

# install rmtrash, (either from the macports or by the brew.)
$ alias trash="rmtrash"
$ alias   del="rmtrash"       # del / trash are shorter than rmtrash

খারাপ অভ্যাস সংশোধন করা

rmtrashপরিবর্তে নিজেকে জোর করে ব্যবহার করার জন্য আর একটি জিনিস যা আপনি নিজের rmকোনও কাস্টম বার্তায় উলেস করে .profile

alias rm="echo Use 'del', or the full path i.e. '/bin/rm'"

সুতরাং, আপনি যখনই ব্যবহার করবেন তখন আপনাকে ব্যবহার rmকরার জন্য অনুরোধ করা হবে rmtrashবা হয় /bin/rm। মনে রাখবেন, এটি কেবলমাত্র অস্থায়ী, কিছুক্ষণ পরে আপনার নামটি সরিয়ে নেওয়া উচিত।


কখনও কখনও না, এর মতো কিছু করুন:

$ pwd
/
$ cd /tnp; rm -rf *
sh: cd: /tnp: No such file or directory

পপ কুইজ: rmকমান্ডটি কোন ডিরেক্টরিতে চলবে? :)

পিএস: এই পোস্টে স্রেফ কিছু অযাচিত সম্পাদনা সরিয়ে ফেলা হয়েছে, যা কী কারণে উপমা সম্পর্কে কিছু বাজে কথা যুক্ত করেছে।


14
&&তোমার লাইফলাইন ;শয়তান। পিএস উত্তরটি হ'ল উপরের উদাহরণে আপনার সিস্টেমের সমস্ত কিছুই অদৃশ্য হয়ে যায়।
জেসন সালাজ

যদিও, আরএম নিরাপদে মুছে ফেলতে পারে না, তবে আবর্জনা / খালি করতে চলেছে (আমার সেটআপে)।
মাইক গ্রাফ

1
trash-cliপরিবর্তে ডেবিয়ান / উবুন্টু ব্যবহারকারীরা ইনস্টল করুন, প্রাক্তন। aptitude install trash-cli- github.com/andreafrancia/trash-cli দেখুন
ড্যানিয়েল

@ jm666 এছাড়াও ট্র্যাশগুলি পরীক্ষা করুন ( ব্লগ পোস্ট এবং উত্স )। এটি অনুসন্ধানকারীকে ফাইল ট্র্যাশ করার জন্য জিজ্ঞাসা করে। এছাড়াও এটি পর্যাপ্ত অধিকার না থাকলে স্ট্যান্ডার্ড অবজেক্টিভ সি ফাইল সিস্টেম এপিআই (দ্রুত) এবং ফাইন্ডারে ফ্যালব্যাকও ব্যবহার করতে পারে। brew install trash
পার্থ

rmtrashসত্যিই পুরানো, 2003 সালে সর্বশেষ আপডেট হয়েছে এবং এটি দেখায়। এটা তোলে চেয়ে অনেক কম বিকল্প রয়েছে rm, এবং যদি আপনি বলতে rmtrashসেকেন্ডারি ভলিউম তে এটি চলে আসে সিস্টেম ড্রাইভ, যা বড় ফাইল জন্য একটি দীর্ঘ সময় লাগতে পারে আপনার ব্যবহারকারীর আবর্জনা ফোল্ডার সেই ফাইল। trashবিকল্প Parth দ্বারা বাঞ্ছনীয় রাখা-অন-একই ভলিউম সমস্যা অনেক সমাধানে, কিন্তু এখনও অনুপস্থিত, উত্তম rmবিকল্প।
ওয়ারেন ইয়ং

25

আমি এটিকে কোড করার এক ডজন উপায় সম্পর্কে ভাবতে পারি, তবে কোনও উত্তরটিতে স্পষ্টভাবে অস্বীকার করতে চাই না ref আমি দৃঢ়ভাবে আপনি আপনার অভ্যাস প্রতিবন্ধক সুপারিশ একটু পাগল পেয়ে । আপনি rmযদি এটি সঠিকভাবে ব্যবহার করতে না পারেন তবে আপনার মোটেও ব্যবহার করার অভ্যাসে থাকা উচিত নয় ।

এখানে মূল সমস্যাটি হ'ল এমনকি যদি আপনি নিজের সিস্টেমে সুরক্ষা জাল ইনস্টল করেন, তবে এটি কেবল আপনার খারাপ অভ্যাসগুলি বজায় রাখতে সহায়তা করবে এবং যখন কোনও দিন একই কাস্টম সুরক্ষা নেই এমন কোনও মেশিনে থাকবেন, আপনি মহাকাব্যিক কিছু খারাপ।

সঠিক সমাধানটি হ'ল ব্যবহারটি হ'ল rmম্যানুয়ালি -iযুক্তি যুক্ত করার সাথে সাথে ব্যবহার করার বোঝানো হয়েছিল যখনই আপনি যখন কোনও গ্লোব কীভাবে প্রসারিত হবে সে সম্পর্কে সন্দেহ থাকবেন এবং সিস্টেমের ভাল ব্যাকআপ রয়েছে যা আপনি গুরুতর ব্যবহারকারীর ত্রুটির ক্ষেত্রে পুনরুদ্ধার করতে পারবেন। কমান্ডগুলিতে "ট্র্যাশ" যুক্ত করার চেষ্টা করা হচ্ছে যে বাকি মহাবিশ্বে এটি ব্যবহার করবেন না এটি একটি অর্ধমুখী পদক্ষেপ যা উভয় বিশ্বের সবচেয়ে খারাপ।

হয় ট্র্যাশ ব্যবহার করুন বা করবেন না। ব্যবহারrmট্র্যাশে যায় না, এটি সরিয়ে দেয়।

আপনি যদি আবর্জনা ব্যবহার করতে চান তবে এতে কোনও ভুল নেই। rmtrashপরিবর্তে কমান্ডটি ব্যবহার করার অভ্যাসটি পান rm। এটি আপনার মস্তিষ্ককে কী ঘটছে তা বুঝতে সাহায্য করবে এবং আপনাকে কোনও খারাপ অভ্যাসে ফেলবে না যা পরে শোকের কারণ হতে পারে।


1
আপনার পয়েন্টটি এই উদাহরণে গণনা করে না। লোকেরা দৈনিক ভিত্তিতে দুর্ঘটনাক্রমে জিনিসগুলি মুছে দেয়, হোম পিসির ক্ষেত্রে সিস্টেম ব্যাকআপগুলি কাজ করে না (যা খনিটি হ'ল সম্পদগুলি সীমিত হওয়ায়, ট্র্যাসে সরানো আমার বিশেষত এই মুছে ফেলা পরিচালনা করার জন্য আরও কার্যকর উপায় way ব্যবহারের ক্ষেত্রে.
স্টিভ

5
@ তবে আপনি বিষয়টি পুরোপুরি মিস করেছেন। rmসংজ্ঞা দ্বারা ডিস্ক থেকে একটি ফাইল সরান। এটি ট্র্যাসে পাঠায় না। নিজেকে ট্র্যাশে পাঠানোরrm অর্থ যখন নিজেকে ব্যবহার করতে শেখানো তখন আপনাকে বিপর্যয়ের জন্য সেট করে। আপনি যদি আবর্জনা, ব্যবহার বা কাজের জন্য নকশাকৃত কোনও প্রোগ্রামে প্রেরণ করতে চান তবে আপনি পরে দুঃস্বপ্নের মধ্যে পড়বেন না। আমি বলছিলাম না যে আবর্জনা ব্যবহার করা অন্তর্নিহিতভাবে ভুল, তবে আপনি যদি এটি ব্যবহার করতে চান তবে এটি এমন কোনও কিছুর সাথে তারযুক্ত করবেন না যা এটি ব্যবহারের উদ্দেশ্যে নয়! rmtrash
কালেব

2
brew install rmtrashএবং ব্যবহার বন্ধ করুনrm
গ্যাবলেউক্স

এটি একটি দুর্দান্ত উত্তর, আমার জন্য কয়েকটি জিনিস পরিষ্কার করে। আমি এর rmtrashপরিবর্তে ব্যবহার করার অভ্যাস গঠনের চেষ্টা করব rm
শেহেরিয়ার

sudo অ্যাড-এপটি-সংগ্রহস্থল পিপিএ: নাটেশ্বাট / আরএম-ট্র্যাশ। তারপরে "আরএম-ট্র্যাশ" ইনস্টল করুন
নাটেশ ভাট

3

সেখানে নিজের থেকে ভয়ঙ্কর ফলাফল থেকে রক্ষা করার উপায় আছে rm। তবে আমি এখানে অন্যান্য মন্তব্যকারীদের সাথে একমত: খুব কমই খুব ভাল।

এক মিনিটের জন্য বিশ্বাস করবেন না যে কমান্ডের পরিবেশটি আপনাকে পরিবর্তন করবে। উদাহরণস্বরূপ, আপনি অনলাইনে সর্বত্র লোকেরা এই ধরণের কাজটি করার সুপারিশ পাবেন:

alias rm="rm -i"

অথবা

function rm()
{
    echo >&2 'rm forbidden; use "/bin/rm"'
}
export -f rm

এটি কাজ করবে না। সময়কাল। প্রচুর ব্যবহারের কেস রয়েছে যেখানে এই ছোট্ট পার্লার ট্রিকগুলি আপনাকে খারাপভাবে ব্যর্থ করবে।

বিপদ থেকে নিজেকে বাঁচানোর একমাত্র দৃ rob়তম উপায় rmহ'ল আমি যে ডিরেক্টরিতে কাজ করি সেগুলি ক্রনের মাধ্যমে নিয়মিত ব্যাকআপ প্রক্রিয়া স্থাপন করা। কাঁচা ইউনিক্স আপনার জন্য এটা আছে চমত্কারভাবে, মহান সরলতা সঙ্গে, ব্যবহার findসাথে -mtimeফাইল মধ্যে অথবা একটি নির্দিষ্ট সময় থেকে আপডেট করা হয়েছে জন্য চেক করতে।


জন্য +1 cronএকা। ধন্যবাদ :)
বমিকে

2

Rmtrash এর মতো একটি কমান্ড লাইন সরঞ্জাম ব্যবহার করুন বা স্ক্রিপ্ট টাট সন্ধান করতে মুছে ফেলার জন্য কল করতে অ্যাপস্ক্রিপ্ট ব্যবহার করে।

/ Usr / স্থানীয় / বিন / rmtrash বলতে rmtras ইনস্টল করার পরে স্রষ্টাকে বাশের জন্য একটি উপাধি দিন

alias rm='rmtrash'

আপনি সরাসরি আরএম কল করতে এবং the আরএম উপেক্ষা করতে alias rm ব্যবহার করতে পারেন


14
আপনি যদি কোনও সরঞ্জাম ব্যবহার করেন rmtrashতবে দয়া করে নিজের পক্ষ নেবেন এবং এটি নিজের নামে ব্যবহার করুন । কখনও ওরফে বিষয় আছে যা নয় rmথেকে rm, এটা কিছু দিন দান্ত দিয়া ফুটা করা হবে।
কালেব

1
rmtrashrm(একই কমান্ড লাইনের প্যারামিটারগুলির মতো সমর্থন করে না) এর সাথে সামঞ্জস্যপূর্ণ নয় -rতাই কোনও
পেরি

উপন্যাসের rmtrashপ্রতি এটি একটি খারাপ ধারণা rm। কেবল তারা সামঞ্জস্যই নয়, এটি খারাপ অভ্যাসটিও প্রয়োগ করবে এবং আপনি rmকেবলমাত্র ব্যবহার করছেন এমন ভেবে দুর্ঘটনাক্রমে অন্য সিস্টেমে ব্যবহার করবেন rmtrash
ফায়াজ

1

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


-1

ভূমিকা (আপনি এড়িয়ে যেতে পারেন)

আমার জন্য rm -iযথেষ্ট হবে, কারণ এটি কোনও ফাইল মোছার আগে আপনাকে অনুরোধ জানায়। তবে সরবরাহ করা কিছু অতিরিক্ত সুরক্ষা safe-rmমোটেই খারাপ ধারণা নয়।

একটি সরল aliasমত যথেষ্ট rm=safe-rm -i হতে পারে, তবে rm -rfকাজ করবে না, কারণ -iএটি ওভার্রাইড হয়ে গেছে -f

সুতরাং, আমাদের নিশ্চিত করতে হবে যে -iসর্বদা পরে আসবে -f!


আমার সমাধান (3 পদক্ষেপ):

  • নিরাপদ-আরএম ইনস্টল করুন: brew install safe-rm

    আপনি এখনও সাথে কাজ করতে পারেন rm, তবে আপনি RM_BINপরবর্তী পদক্ষেপে এটি পরিবর্তন করেছেন

  • আপনার ~/.profile(বা বাশ_প্রযুক্তি বা যা কিছু) সম্পাদনা করুন এবং নীচের কোড স্নিপেট রাখুন (এতে একটি aliasএবং একটি রয়েছে function):

    alias rm="rm_i"
    
    function rm_i(){
    RM_BIN=safe-rm # you can replace it with regular rm if you like
    
    args=""
    files=""
    argsDone=0 # to make sure arguments are before the files
    
    for var in "$@"
    do
        if [[ $var == \-* ]] ; then
            if [ $argsDone -eq 1 ] ; then
                $RM_BIN # just to show the usage of rm
                return
            fi
            args+=" $var"
        else
            argsDone=1
            files+=" $var"
        fi
    done
    
    args+=" -i" # Put -i at the end (so rm -rf will not ignore it)
    
    $RM_BIN $args $files
    }
    
  • অবশেষে , logoutএবং login, তাই .profile আপডেট করা হয়। লগআউট / লগইনের আগে এটি ব্যবহার করবেন না !


নোট:

  • এটি সামান্য পরিবর্তন সহ যে কোনও লিনাক্স ডিস্ট্রোতে প্রয়োগ করা যেতে পারে।
  • এটি আপনার কর্মীদের ছিটকে যাওয়ার দিকে সরায় না। এটি প্রতিটি ফাইল মুছে ফেলার আগে আপনাকে জিজ্ঞাসা করে!
  • এটি -rfরেগেক্সগুলির সাথে এবং তার সাথে কাজ করে ।
  • আপনি যদি প্রতিটি একক ফাইল / ফোল্ডারের জন্য জিজ্ঞাসা করা rm -rf ছাড়া সত্যই ব্যবহার করতে চান তবে আপনি এখনও ব্যবহার করতে পারেন /bin/rm -rf(বা safe-rm -rfআপনি এটি ইনস্টল করে থাকলে)।
  • আর অজান্তেই rm -rf বা rm * ;)

5
আরএমকে নিজের থেকে বৃহত্তর কোনও কিছুর (যেমন alias rm='sudo rm') কোনও উজিকে রান্নাঘরের ছুরির কাছে চাপানোর মতো: কোনও দিন আপনি যখন এই আনারস কাটতে যাবেন তখন আপনি তার চেয়ে বেশি দর কষাকষি করবেন। আরএমকে নিজের থেকে ছোট কিছুতে উদ্বোধন করা (উদাহরণস্বরূপ alias rm='rmtrash') হ'ল আপনার বাচ্চাদের নিরস্ত্র করা হ্যান্ড গ্রেনেড দিয়ে খেলতে দেওয়া এবং তাদের আসলে কী তা শেখানো না: কোনও দিন যখন তারা কোনও সত্যিকারের মুখোমুখি হন তারা যথাযথ সতর্কতার সাথে আচরণ করবেন না। যে কোনও উপায়ে i এলিয়াসিং আরএম আপনার ব্যক্তিগত সুরক্ষা এবং জনস্বাস্থ্যের জন্য খারাপ!
কালেব

2
নিরাপদ-আরএম এর মতো কিছু ব্যবহার করা যুক্তিসঙ্গত পরামর্শ। এটি আরএমের সাথে আলস্য করা নয়। এটিকে তার নিজের নামে বা একটি অনন্য উপনামের অধীনে ব্যবহার করুন যাতে আপনি কোনও সুরক্ষা জাল পাবেন না যা সর্বদা থাকবে না।
কালেব

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

@ প্যাসচালিস এবং যদি কোনও স্ক্রিপ্ট বা ইনস্টলড প্রোগ্রাম ব্যবহার করার প্রয়োজন হয় তবে কী হবে rm? এছাড়াও কালেবের বক্তব্যটি আরও বৈধ - যদি আপনি সেফ-আরএম এলিয়াসহ কোনও সিস্টেমের সাথে অভ্যস্ত হন তবে আপনি এটির সাথে বেপরোয়া হয়ে উঠতে পারেন এবং অবশেষে এটি একটি অবিবাহিত আরএম সহ সিস্টেমে ব্যবহার করতে পারেন।
মণিশারথ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.