কখনও কখনও যখন আমি কোনও ফাইল মুছে ফেলতে চাই (স্ক্রিপ্টের মধ্যে থেকে), আমি এটি উপস্থিত আছে কিনা তা পরীক্ষা করে না করে কেবল মুছে ফেলব। সুতরাং আমি এটি করি:
$ rm "temp.txt" 2>/dev/null
এটার পরিবর্তে:
[ -f "temp.txt" ] && rm "temp.txt"
আমি কেবল অনুভব করি যে ফাইলটি উপস্থিত আছে কিনা তা পরীক্ষা করে বেরোন এবং একটি প্রস্থান কোড ফেরত যেতে সময় নষ্ট হয়।
সুতরাং, সম্ভবত এটি প্রথম উপায়ে করা দ্রুততর, বিশেষত বেশিরভাগ সময় যদি ফাইল উপস্থিত থাকার সম্ভাবনা থাকে।
এটি এক উপায়ে বা অন্যভাবে করার জন্য অন্য কোনও সুবিধা (বা ডাউনসাইড) রয়েছে?
এটা কি আরও দ্রুত হবে ভেবে আমি কি ভুল করছি?
[ -f "temp.txt" ] && rm "temp.txt"
মানে কি? আমি মনে করি আপনার অর্থ rm -f শুধু -f নয়। আর দুবার কেন আরএম। আপনি কি পাচ্ছেন তা আমি দেখতে পাচ্ছি না। এবং * নিক্সে আমি ভেবেছিলাম এটি একক উদ্ধৃতিগুলি ডাবল কোট নয়, যদিও আমি ডাবল উদ্ধৃতিগুলি (নপপিক্সে পরীক্ষিত) দেখছি।
rm
সাথে কোনও বিকল্প নেই rm -i
, সুতরাং আরএম প্রম্পটটি খারিজ করার জন্য একটি "এন্টার" দরকার হয় না। 2) rm
প্রতিটি ক্ষেত্রে আমার কেবল 1 জন রয়েছে, সুতরাং আপনি rm
দুবার ব্যবহারের অর্থ কী তা আমি জানি না । 3) [ -f "temp.txt" ] && rm "temp.txt"
শুধুমাত্র rm
ফাইল উপস্থিত থাকলে চালানো হয় , আমি এর মানে না [ rm -f "temp.txt" ] &&...
। ৪) ডাবল-কোটস ... আমি সবসময় ফাইলের নাম উদ্ধৃত করার জন্য ডাবল-কোট ("...") ব্যবহার করার অভ্যাসে থাকি কারণ ফাইলের নামগুলিতে এক বা একাধিক এমবেডেড অ্যাডোস্ট্রোফ (') থাকতে পারে। এই উদাহরণে, আমি হয় ব্যবহার করতে পারে।
&&
। আমি নিশ্চিত আমি যখন এটি লিখছিলাম তখন এটি ছিল তবে আমি অবশ্যই পোস্ট করার আগে এটি কোনওভাবে হারিয়ে ফেলেছি।
[
সাধারণত (বা এর সমতুল্য) এর একটি সিমিলিংক হয় test
, সুতরাং [ -f x ]
এর সমতুল্য হয় test -f x ]
এবং চূড়ান্ত ]
উপেক্ষা করা হয়। সুতরাং একই কমান্ডটি লেখা যেতে পারেtest -f "temp.txt" && rm "temp.txt"