انڈروئد

بازیافت میں فائل یا ڈائریکٹری موجود ہے یا نہیں اس کی جانچ کیسے ہوگی

سوا - غابة المعمورة تواجه خطر الاندثار

سوا - غابة المعمورة تواجه خطر الاندثار

فہرست کا خانہ:

Anonim

شیل اسکرپٹ لکھتے وقت ، آپ خود کو ایک ایسی صورتحال میں پاسکتے ہیں جہاں آپ کو ایک فائل انجام دینے یا نہ ہونے کی بنا پر کسی عمل کو کرنے کی ضرورت ہوتی ہے۔

باش میں ، آپ یہ جانچنے کے لئے ٹیسٹ کمانڈ استعمال کرسکتے ہیں کہ آیا فائل موجود ہے یا فائل کی قسم کا تعین کریں۔

ٹیسٹ کمانڈ مندرجہ ذیل نحو میں سے ایک شکل لیتا ہے:

test EXPRESSION]

فائل موجود ہے تو چیک کریں

جب یہ چیک کرتے ہو کہ آیا فائل موجود ہے تو ، عام طور پر استعمال ہونے والی فائل آپریٹرز -e اور -f ۔ پہلا ایک جانچ کرے گا کہ فائل کی نوعیت سے قطع نظر کوئی فائل موجود ہے یا نہیں ، جبکہ دوسری فائل صرف اسی صورت میں درست ہوگی جب فائل فائل باقاعدہ فائل ہے (ڈائریکٹری یا ڈیوائس نہیں)۔

سب سے زیادہ پڑھنے کے قابل آپشن کی جانچ پڑتال کے دوران کہ آیا کوئی فائل موجود ہے یا نہیں اگر ٹیسٹ کے کمانڈ کو if بیان کے ساتھ مل کر استعمال کیا جائے۔ نیچے دیئے گئے ٹکڑوں میں سے کوئی چیک کرے گا کہ آیا /etc/resolv.conf فائل موجود ہے:

FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if]; then echo "$FILE exist" fi

اگر آپ فائل پر موجود ہے یا نہیں کی بنا پر کوئی مختلف عمل انجام دینا چاہتے ہیں تو صرف اس کے بعد / اگر تشکیل دیں:

FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi ان کے ناموں میں سفید فام جگہ والی فائلوں کے ساتھ معاملات کرتے وقت ہمیشہ مسائل سے بچنے کے لئے ڈبل کوٹس کا استعمال کریں۔

آپ جانچ کمانڈ بھی اگر بیان کے بغیر استعمال کرسکتے ہیں۔ اینڈ اینڈ آپریٹر کے بعد کی کمانڈ صرف اس صورت میں عمل میں && جائے گی جب ٹیسٹ کمانڈ کی خارجی حیثیت درست ہو ،

test -f /etc/resolv.conf && echo "$FILE exist"

&& echo "$FILE exist"

] && echo "$FILE exist"

&& { echo "$FILE exist"; cp "$FILE" /tmp/; }

&& ، بیان کے بعد || آپریٹر صرف اس وقت عمل میں لایا جائے گا جب ٹیسٹ کمانڈ کی خارجی حیثیت false ۔

&& echo "$FILE exist" || echo "$FILE does not exist"

ڈائرکٹری موجود ہے تو چیک کریں

آپریٹرز -d آپ کو یہ جانچ کرنے کی اجازت دیتا ہے کہ فائل ڈائریکٹری ہے یا نہیں۔

مثال کے طور پر یہ چیک کرنے کے /etc/docker کہ /etc/docker ڈائریکٹری موجود ہے کہ آپ استعمال کریں گے:

FILE=/etc/docker if; then echo "$FILE is a directory" fi

&& echo "$FILE is a directory"

آپ ڈبل بریکٹ بھی استعمال کرسکتے ہیں , 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));

چیک کریں اگر فائل موجود نہیں ہے

بہت سی دوسری زبانوں کی طرح ، ٹیسٹ کے اظہار کو بھی استعمال کرکے نفی کیا جاسکتا ہے ! (حیرت انگیز نشان) منطقی نہیں آپریٹر:

FILE=/etc/docker if; then echo "$FILE does not exist" fi

جیسا کہ اوپر دیا گیا ہے:

&& echo "$FILE does not exist"

چیک کریں اگر ایک سے زیادہ فائلیں موجود ہیں

پیچیدہ گھونسلے کو استعمال کرنے کی بجائے اگر / اور تعمیرات آپ استعمال کرسکتے ہیں -a (اور && ; then echo "$FILE is a directory" fi ساتھ ; then echo "$FILE is a directory" fi

FILE=/etc/docker if; then echo "$FILE is a directory" fi

IF بیان کو استعمال کیے بغیر مساوی مختلف حالتیں:

&& echo "both files exist"

] && echo "both files exist"

فائل ٹیسٹ آپریٹرز

ٹیسٹ کمانڈ میں درج ذیل فائل آپریٹرز شامل ہیں جو آپ کو خاص قسم کی فائلوں کی جانچ کرنے کی اجازت دیتے ہیں۔

  • -b FILE - یہ درست ہے کہ اگر فائل موجود ہے اور یہ ایک بلاک خصوصی فائل ہے۔ -c FILE - یہ درست ہے کہ اگر فائل موجود ہے اور ایک خاص کیریکٹر فائل ہے۔ -d FILE - یہ درست ہے کہ اگر فائل موجود ہے اور یہ ایک ڈائریکٹری ہے۔ -e FILE - یہ درست ہے کہ اگر فائل موجود ہے اور فائل ہے ، قطع نظر (نوڈ ، ڈائریکٹری ، ساکٹ ، وغیرہ)۔ -f FILE - یہ درست ہے کہ اگر فائل موجود ہے اور یہ ایک باقاعدہ فائل ہے (ڈائریکٹری یا ڈیوائس نہیں ہے)۔ -G FILE - یہ درست ہے کہ اگر فائل موجود ہے اور وہی گروپ ہے جس میں صارف کمانڈ چلا رہا ہے۔ -h FILE - یہ درست ہے کہ اگر فائل موجود ہے اور یہ ایک علامتی لنک ہے۔ -g FILE - یہ درست ہے کہ اگر فائل موجود ہے اور اس میں گروپ-آئی ڈی (ساجد) پرچم سیٹ ہے۔ -k FILE - یہ درست ہے کہ اگر فائل موجود ہے اور اس میں چپچپا سا جھنڈا سیٹ ہے۔ -L FILE - یہ درست ہے کہ اگر فائل موجود ہے اور یہ ایک علامتی لنک ہے۔ - FILE - یہ درست ہے کہ اگر فائل موجود ہے اور صارف کی ملکیت ہے جس میں کمانڈ چل رہا ہے۔ -p FILE - یہ درست ہے کہ اگر فائل موجود ہے اور یہ ایک پائپ ہے۔ -r FILE - یہ درست ہے کہ اگر فائل موجود ہے اور پڑھنے کے قابل ہے۔ -S FILE - یہ درست ہے کہ اگر فائل موجود ہے اور ساکٹ ہے۔ -s FILE - یہ درست ہے کہ اگر فائل موجود ہے اور اس کا سائز غیرزرج ہے۔ -u FILE - یہ درست ہے کہ اگر موجود اور سیٹ-صارف-آئی ڈی (سوئڈ) جھنڈا سیٹ کیا گیا ہے۔ -w FILE - یہ درست ہے کہ اگر فائل موجود ہے اور قابل تحریر ہے۔ -x FILE - یہ درست ہے کہ اگر فائل موجود ہے اور قابل عمل ہے۔

نتیجہ اخذ کرنا

اس گائڈ میں ، ہم نے آپ کو دکھایا ہے کہ باش کا استعمال کرتے ہوئے فائل یا ڈائرکٹری موجود ہے یا نہیں۔

بش ٹرمینل