از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash وجود دایرکتوری را بررسی کنید
سرفصلهای مطلب
دایرکتوری ها و پوشه ها بخش های اصلی و کاملا مهم هر سیستم عامل هستند. بدون دایرکتوری ها و فایل ها، سیستم ما کامل نمی شود. دایرکتوری ها برای ذخیره زیر پوشه ها و فایل هایی که داده ها را در آنها نگهداری می کنند برای کارهای امنیتی و شخصی استفاده می شود. در سیستم عامل لینوکس، ما نیز همان سیستم فایل را داریم، یعنی دایرکتوری ها و زیر پوشه ها. برنامه نویسی Bash برخی از دستورات و دستورات بسیار ساده را برای بررسی اینکه آیا دایرکتوری خاصی از یک فایل در سیستم ما وجود دارد یا خیر، ارائه کرد. بنابراین، ما تصمیم گرفتیم این مقاله را بنویسیم تا بررسی کنیم که آیا دایرکتوری در سیستم لینوکس ما وجود دارد یا خیر.
مثال 01: بررسی کنید که آیا فایل وجود دارد یا خیر
بیایید با مثال اصلی شروع کنیم. ابتدا نگاهی به بررسی یک فایل ساده در سیستم لینوکس خود خواهیم داشت، یعنی اینکه آیا وجود دارد یا نه. بنابراین، ما در حال ایجاد یک فایل نوع متن جدید به نام “new.txt” در پوشه اصلی اوبونتو با دستور “touch” بوده ایم. یک متن تک خطی در فایل اضافه کرده و نمایش داده ایم روی پوسته با استفاده از دستورالعمل “cat” نشان داده شده در زیر. خروجی دستور زیر در تصویر پیوست شده است.
$ گربه new.txt
اکنون زمان ایجاد یک جدید است bash فایل را با دستور “touch” با نام “direc.sh” به صورت زیر انجام دهید. ما باید این فایل خالی را باز کنیم تا شروع به کدنویسی در آن کنیم. برای این کار، ما از دستورالعمل “nano” برای راه اندازی آن در داخل استفاده کرده ایم GNU ویرایشگر نانو خروجی دستور زیر در تصویر پیوست شده است.
$ نانو direct.sh
اکنون فایل خالی در ویرایشگر نانو باز شده است. در خط اول کد، یک متغیر فایل “F” را مقداردهی کرده ایم که مسیری به فایل “new.txt” را به صورت “/home/linux/new.txt” نگه می دارد. عبارت “اگر-آنگاه” از bash در اینجا برای بررسی اینکه آیا فایل “new.txt” وجود دارد یا نه استفاده شده است. بند “if” با کلمه کلیدی “test” و به دنبال آن پرچم “-f” برای فایل ها شروع می شود. در داخل کاماهای معکوس، متغیر “$F” را اضافه کرده ایم. پس از این، عبارت «then» با عبارت «echo» با استفاده از نام متغیر شروع شد تا نشان دهد که آیا وجود دارد یا نه. قسمت “then” دستور “if-then” تنها زمانی اجرا می شود که شرط “اگر” درست باشد.
بیایید اجرا کنیم bash فایل با استفاده از “bashکلمه کلیدی به دنبال نام یک فایل “direc.sh”. از آنجایی که فایل در فهرست اصلی سیستم ما وجود دارد، دستور echo را اجرا می کند و نشان می دهد که فایل وجود دارد. خروجی دستور زیر در تصویر پیوست شده است.
همین امر را می توان با استفاده از براکت های مربع در اطراف شرط “اگر” بدون استفاده از کلمه کلیدی “تست” مطابق شکل زیر به دست آورد. بیایید آن را اجرا کنیم تا نتیجه آن را در bash صفحه خروجی در داخل پوسته
پس از اجرای این کد به روز شده، ما همان نتیجه را داریم، یعنی فایل وجود دارد. خروجی دستور زیر در تصویر پیوست شده است.
مثال 02: بررسی کنید که آیا دایرکتوری وجود دارد یا خیر
بیایید نگاهی به کدی بیندازیم که برای بررسی اینکه آیا دایرکتوری پوشه در سیستم ما وجود دارد یا خیر. برای آن، ما از یک پوشه کاملاً جدید استفاده خواهیم کرد. بنابراین، در داخل terminal ناحیه پرس و جو پوسته، ما دستور “mkdir” را برای ایجاد یک دایرکتوری جدید به نام “new” امتحان کرده ایم. این دایرکتوری جدید ایجاد شده در کد ما برای بررسی وجود یا عدم وجود آن استفاده خواهد شد. دستور list برای دیدن همه دایرکتوری ها و فایل های موجود در پوشه اصلی اجرا می شود. ما می توانیم فهرست “جدید” را در خروجی نشان داده شده در زیر پوشه “Music” و بعد از “Downloads” مشاهده کنیم. خروجی دستور زیر در تصویر پیوست شده است.
$ ls
بیایید همان فایل “direc.sh” را در ویرایشگر نانو اوبونتو باز کنیم تا یک کد جدید ایجاد کنیم. پس از راهاندازی فایل، باید یک متغیر دایرکتوری جدید “D” ایجاد کنیم که مسیری را به یک فهرست جدید به نام “new” به عنوان “/home/Linux/new” نگه میدارد. کار کلی برای بررسی وجود دایرکتوری در عبارت if-then-else انجام شده است bash. بنابراین، عبارت “if” با شرط بررسی دایرکتوری در یک سیستم با استفاده از پرچم “-d” برای “directory” همراه با متغیر دایرکتوری در کاماهای معکوس آغاز شده است. این شرایط در براکت های مربع استفاده شده است. اگر شرط برآورده شد و دایرکتوری وجود داشت، دستور “then” همراه با دستور “echo” آن اجرا می شود. در غیر این صورت، قسمت “دیگر” عبارت به همراه دستور “echo” آن استفاده می شود که نشان می دهد پرونده وجود ندارد. بیانیه کلی با کلمه کلیدی “fi” مطابق شکل زیر بسته می شود.
اکنون زمان اجرای ماست bash کد در terminal پوسته با استفاده از “bash” پرس و جو در تصویر نشان داده شده است. پس از اجرای آن، پیام موفقیت آمیزی دریافت می کنیم که نشان می دهد دایرکتوری وجود دارد. خروجی دستور زیر در تصویر پیوست شده است.
اگر می خواهید به اجرای قسمت else در پوسته برسید terminal، باید دایرکتوری را حذف کنید تا شرط برآورده نشود. بنابراین، ما دایرکتوری خالی تازه ساخته شده “new” را از پوشه اصلی سیستم Ubuntu 20.04 خود حذف کرده ایم. پس از این، محتویات پوشه اصلی را با استفاده از دستور list لیست کردیم و متوجه شدیم که هیچ دایرکتوری با نام “new” مانند زیر وجود ندارد. پس از اجرای همان “direc.sh” bash فایل با “bash” دستورالعمل، ما خروجی داریم که نشان می دهد قسمت دیگر کد اجرا شده است، یعنی دایرکتوری وجود ندارد.
$ bash direct.sh
نتیجه
سرانجام! ما توضیح دادیم که بررسی کنیم آیا دایرکتوری در سیستم Ubuntu 20.04 ما وجود دارد یا خیر. برای این، ما سعی کرده ایم bash اسکریپت برای رسیدن به هدفمان ما همچنین در مورد استفاده از “-f” برای بررسی فایل و “-d” برای بررسی دایرکتوری در سیستم بحث کرده ایم. همه نمونه ها ساده و مطابق با انتخاب کاربر ما هستند.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 02:47:05