دستورها در سیستم عامل مخصوص برنامهنویسی لینوکس یکی از کاربردیترین قابلیتها به شما میروند که عملیاتهای مختلفی را انجام میدهند. یادگیری دستورهای لینوکس به بهرهوری و افزایش سرعت کارهای شما کمک زیادی میکند. اگر شما هم برایتان سوال شده که دستور mkdir در لینوکس چیست و چه کاری انجام میدهد، به مطالعه ادامه دهید.
دستور mkdir یکی از دستورات لینوکس است که برای ساخت دایرکتوریهای جدید در این سیستم عامل استفاده میشود و اغلب به عنوان دستور ساخت پوشه در لینوکس مورد استفاده قرار میگیرد. در ادامه میخواهیم تا چگونگی ایجاد دایرکتوری با استفاده از دستور mkdir را یاد بگیریم. برای نمایش فرآیند کار، از اوبونتو 18.04 استفاده میکنیم، با این حال، شما هر توزیعی از اوبونتو را روی سیستم خود نصب کرده باشید مشکلی در اجرای این آموزش ندارید. برویم که کار را آغاز کنیم.
مسیر مطلق (Absolute) و مسیر نسبی (Relative)
دو نوع مسیر به نامهای مطلق و نسبی در لینوکس وجود دارد. درک درست مفهوم این دو اصطلاح، لازمه استفاده از دستور mkdir در لینوکس اوبونتو است.
مسیر مطلق: آدرس کامل به دایرکتوری یا فایل مدنظر شما است. مسیر مطلق اول با دایرکتوری / (یا root) آغاز میشود، سپس آنقدر بهصورت درختی پایین میرود تا به دایرکتور یا فایل دلخواه شما برسد.
مثلا، /db/mysql/data مسیر مطلق دایرکتوری و /etc/fstab مسیر مطلق فایل است.
مسیر نسبی: به مسیر دایرکتوری میگویند که اکنون باز کردهاید و کار میکنید. مسیر نسبی میتواند با یا بدون ./ شروع شود، اما هیچوقت در ابتدایش / نمیآید.
میتوانید دایرکتوری در حال کار کنونی را با دستور pwd بهصورت زیر نمایش دهید:
پس، اگر مسیر دایرکتوری ./db/musql/data یا db/mysql/data باشد، در واقع داخل دایرکتوری والد /home/shovon قرار دارد. میبینید که لازم نیست آدرس مسیر کامل یا مطلق را بهصورت /home/shovon/db/mysql/dataتایپ کنیم.
مسیرهای مطلق، کارکردن با دستور mkdir را خیلی سادهتر میکنند.
ایجاد دایرکتوری با mkdir:
شما میتوانید با mkdir، دایرکتوری بسازید که سادهترین و رایجترین کارکرد آن است.
مثلا برای ساخت دایرکتوری files/ در همان دایرکتوری که هستید، دستور زیر را اجرا کنید:
1 | mkdir files |
همانطور که در تصویر زیر میبینید، دایرکتوری جدید files/ ایجاد شده است:
1 | ls –l |
اگر نمیخواهید دایرکتوری جدید را در همان دایرکتوری که قرار دارید بسازید، میتوانید به هر دایرکتوری والدی که خواستید بروید و به همان شیوه بالا یک دایرکتوری جدید بسازید. با این حال، راهحل بهتری هم هست.
برای اینکه مجبور نباشید برای ساخت دایرکتور در مسیر دلخواه بین دایرکتوریهای مختلف بچرخید، میتوانید مسیر دایرکتوری را به شکل زیر مشخص کنید:
1 | sudo mkdir /mnt/iso |
دستور بالا دایرکتوری با نام /iso را در دایرکتوری والد /mnt میسازد و نیاز نیست حتما به دایرکتوری /mnt رفته باشید.
1 | ls -l /mnt |
ایجاد دایرکتوری به همراه دایرکتوریهای والد با mkdir
در بخش قبلی نشان دادیم چطور میتوان با مسیر مطلق یک دایرکتوری جدید ساخت. با این حال، اگر دایرکتوری والد وجود نداشته باشد نمیتوانید به این روش دایرکتوری جدید بسازید و mkdir خطا میدهد. اول باید دایرکتوری والد را ساخته و سپس به سراغ دایرکتوری دلخواه خود بروید.
خوشبختانه، mkdir گزینه –p یا –parents را دارد که در نبود دایرکتوریهای ضروری، آنها را میسازد.
برای مثال، فرض کنیم میخواهید دایرکتوری دادههای MySQL را به /db/mysql/data منتقل کنید اما هیچ یک از دایرکتوریهای والد در آن لحظه وجود ندارند. در این شرایط به جای نوشتن 3 دستور mkdir، با استفاده از یک دستور میتوانید به mkdir بگویید دایرکتوریهای موردنیاز را نیز بسازد.
1 | sudo mkdir -p /db/mysql/data |
یا
1 | sudo mkdir --parents /db/mysql/data |
همانطور که میبینید دایرکتوریهای موردنیاز هم ساخته شدهاند.
گزینه –o در دستور mkdir همچنین میتواند دایرکتوریهای والد را بهطور خودکار برای مسیرهای نسبی بسازد.
برای مثال، فرض کنیم میخواهید دایرکتوری جدید projects/python-test را در همان دایرکتوری بسازید که قرار دارید. برای انجام این کار، دستور mkdir را بهصورت زیر اجرا کنید:
1 | mkdir -p projects/python-test |
همانطور که میبینید، دایرکتوری projects/python-test در همان دایرکتوری ساخته شده که بودید.
ایجاد دایرکتوریهای چندگانه با mkdir
اگر بخواهید حتی میتوان چندین دایرکتوری را با یک دستور mkdir در لینوکس اوبونتو ساخت.
فرض کنید میخواهید سه دایرکتوری nodejs/، python/و java/ را در دایرکتوری کنونی خود به نام ~/projects بسازید. برای ساخت هر سه آنها، دستور زیر را اجرا کنید:
1 | mkdir nodejs python java |
همانطور که میبینید، دایرکتوریهای مورد نیاز شما ساخته شدهاند.
یک بار دیگر، فرض کنیم میخواهید با استفاده از مسیر مطلق چند دایرکتوری برای پایگاههای داده mysql، mariadb و mongodb بسازید. همچنین، میخواهید دایرکتوریهای والد موردنیاز نیز همزمان ساخته شوند. برای این کار، دستور mkdir زیر را اجرا کنید:
1 | sudo mkdir -p /db/{mysql,mariadb,mongodb}/data |
همانطور که میبینید تمام دایرکتوریهای موردنیاز در یک لحظه ساخته شدند.
در این جا مسیر دایرکتوریها بهصورت /db/mysql/data، /db/mariadb/data و /db/mongodb/data است. در این مسیرها چه چیزی تغییر کرده است؟ دایرکتوریهای رده دوم هرکدام از مسیرها. پس ما هنگام نوشتن دستور، این سه دایرکتوری را درون آکولاد قرار میدهیم:
1 | db/{mysql,mariadb,mongodb}/data/ |
حالت Verbose در mkdir
اگر دستورات mkdir با موفقیت اجرا شوند، هیچ پیامی مبنی بر انجام آن دستور نمایش داده نمیشود و تنها پیامهای خطا را میبینیم. اگر میخواهید mkdir، پیامهای خود را روی صفحه نمایش دهد، باید از گزینه –v یا –verbose استفاده کنید.
دستور بخش قبلی را میتوان بهصورت زیر نیز نوشت:
1 | sudo mkdir -pv /db/{mysql,mariadb,mongodb}/data |
یا
1 | sudo mkdir --parents --verbose /db/{mysql,mariadb,mongodb}/data |
همانطور که میبینید، حالا mkdir پس از ساخت دایرکتوریها، پیام موفقیت آن را نمایش میدهد.
جمع بندی درباره دستور mkdir
در این مقاله سعی کردیم تا تمام کارکردهای دستور mkdir در لینوکس را باز کنیم. پس از مطالعه این مقاله، مطمئنیم به خوبی نحوه استفاده از این قابلیت لینوکس را فرا گرفتهاید. دستور mkdir در لینوکس اوبونتو کاربرد زیادی برای ساخت فایلها و دایرکتوریها دارد. امیدواریم بتوانید از آن برای بهینه کردن فرآیندهای کاریتان بهخوبی استفاده کنید.
سوالات متداول
دایرکتوری چیست؟
مکانی برای ذخیرهسازی فایلهای روی کامپیوتر که روابطشان بهصورت درختی است.
چرا از دستور mkdir استفاده کنیم؟
دستور mkdir در لینوکس به کاربران قدرت ساخت دایرکتوری (فولدر) را میدهد. با mkdir میتوانید چندین دایرکتوری همزمان بسازید و برایشان مجوزهای مختلف نیز تنظیم کنید.
دستور mkdir چه اهمیتی دارد؟
دستور mkdir در لینوکس اوبونتو یکی از رایجترین و کاربردیترین دستورها است که میتواند فرآیند ساخت فایل و دایرکتوریها را تسهیل کند.
دستور mkdir V چیست؟
این قابلیت بهطور پیشفرض هنگام ساخت فولدرهای جدید، هیچ پیامی را نشان نمیدهد. با این حال، دستور mkdir –v باعث میشود تا از این به بعد هنگام ساخت دایرکتوری یا فولدر، پیامی نمایش داده شود.
سینتکس دستور mkdir چیست؟
1 | mkdir –p –m mode directory … |
آیا دستور mkdir روی یونیکس هم اجرایی است؟
بله، دستور mkdir مخصوص لینوکس است و روی تمامی توزیعهای آن مانند اوبونتو، یونیکس، فدورا و غیره اجرا میشود.
آیا mkdir میتواند مجموعه درختی کامل از دایرکتوریها را بسازد؟
بله، دستور mkdir با گزینه –p میتواند نهتنها دایرکتوریهای زیرمجموعه، بلکه تمام دایرکتوریهای والد را در صورت وجود نداشتن از نو بسازد.