আমি কিছু স্ক্রিপ্ট লিখছিলাম এবং এরকম কিছু লিখেছিলাম
ARTIFACTS="/SOME/PATH"
[ -d $ARTIFCATS ] && rm -rf $ARTIFACTS/*
যা ঘটেছিল তা হল নির্বুদ্ধিতার বাইরে আমি প্রথমটি কার্যকর না করেই দ্বিতীয় লাইনটি কার্যকর করেছিলাম। দেখা গেল যে [-d ""] সত্য ফিরে আসে এবং এক্সপ্রেশন হয়ে যায়
rm -rf /*
ভাগ্যক্রমে এটি কেবল একটি পরীক্ষা মেশিন ছিল এবং আমি একটি সুডো ছিলাম না, তবে আমি কিছু তথ্য হারিয়েছি
আমার প্রশ্ন, কেন [-d ""] সত্য ফিরে আসে ?? ডকুমেন্টেশনে স্পষ্টভাবে বলা হয়েছে যে এটি কোনও পাথ বিদ্যমান এবং এটি একটি ফোল্ডার কিনা তা যাচাই করে
আমি ব্যবহার করে সমস্যাটি সমাধান করেছি
[ -e $ARTIFACTS ]
যা দেখে মনে হচ্ছে
চিয়ার্স
rm -rf $ARTIFACTS
ছাড়া /*
। এটি $ARTIFACTS
ডিরেক্টরিটি মুছে ফেলবে , যা ভাল, কারণ যদি আমি নিশ্চিত হতে চাই যে এটিতে কিছু রাখার আগে এটি বিদ্যমান আছে তবে আমি mkdir -p $ARTIFACTS
যেভাবেই চালিয়ে দেব । এছাড়া ভিতরে লুকানো মুছে ফেলবে ফাইল $ARTIFACTS
, যা জরিমানা, কারণ আমি না লিখতে হবে rm -rf $ARTIFACTS/*
যদি $ARTIFACTS
অন্তর্ভুক্ত কিছু আমি রক্ষা করতে চেয়েছিলেন।