Ls এর আউটপুটটিকে কখনই পার্স করবেন না
আমার পরামর্শ হল ls [ 1 ] এর আউটপুটটি পার্স করা এড়ানো , আরও যদি এর সাথে মিলিত হয়del
কমান্ডের । এটি মূলত অপ্রত্যাশিত এবং ফাইলের নামগুলিতে অনুমোদিত অক্ষরের সাথে সম্পর্কিত বিভিন্ন কারণে।
লিনাক্স প্যাকেজগুলির সাথে সম্পর্কিত ফাইলের নামগুলি "ভাল আচরণ করবে " এমনটি যখন আপনারও করা উচিত , অন্য ফাইলগুলি একই ডিরেক্টরিতে উপস্থিত থাকে তবে আপনি জানেন না বা লক্ষ্য করেননি এই সমস্যাটি তখনই দেখা দিতে পারে।
এটি ব্যবহার করা ভাল find
, ট্যাব সম্প্রসারণ (নাম লিখতে শুরু করুন এবং টিপুন Tab), ফাইলের নাম সম্প্রসারণ [ 2 ] হিসাবে *MyKey*
...
একটি দ্রুত সমাধান
যেহেতু আপনি "গুগল" ভিতরে থাকা সমস্ত প্যাকেজগুলি (যা সমাপ্ত .deb
) নির্বাচন করতে চান আপনি ওয়াইল্ডকার্ডের মাধ্যমে আপনার অনুরোধটি তৈরি করতে পারেন এবং একটি সাধারণ কাজ করতে পারেন*
*google*.deb
rm -i *google*.deb
এটি মাঝের মধ্যে "গুগল" দিয়ে প্রতিটি ফাইলের নাম নির্বাচন করবে যা বর্তমান ডিরেক্টরিতে উপস্থিত হয়ে শেষ হবে । প্যারামিটার সম্প্রসারণের সাথে ফাইলগুলি মুছলে আপনি বিকল্পটি (ইন্টারেক্টিভ) নিশ্চিতকরণের জন্য অনুরোধ করবেন।.deb
-i
আপনার প্রচেষ্টার দর্শন একটি সমাধান ঘনিষ্ঠ
আপনার উদ্দেশ্য, টুকরা পরে আপনার কমান্ড টুকরা তৈরী যাতে আপনি কাজ করেছেন হয় তাহলে ls
, পরে ls | grep google
, এবং শুধুমাত্র পরে আপনি আপনার আউটপুট চেক করা আপনি একটি subshell এটা নির্বাহ করতে পারেন $(...)
সঙ্গে
rm -i $(ls | grep google)
একটি দ্রুত এবং আরও বিপজ্জনক উপায় [ 3 ] , হ'ল ব্যবহার করা!!
ls | grep google
rm -i $(!!)
এটি আপনার ইতিহাসে শেষ হওয়া কমান্ডটি কার্যকর করবে । আপনি নিজেকে এই সত্য থেকে রক্ষা করতে পারবেন যে শেল অপশনগুলির histverify
সাথে আপনি যদি আগে থেকে সক্ষম করে থাকেন তবে আপনি যে রেখার ব্যবহার করতে যাচ্ছেন তার কোনও ভিজ্যুয়াল নিয়ন্ত্রণ নেই shopt -s histverify
।
rm -i *chrome*.deb