نحوه ایجاد راهنماها در لینوکس با دستور mkdir

این راهنما به شما نحوه ایجاد پوسته ها یا دایرکتوری های جدید در لینوکس را با استفاده از خط فرمان نشان می دهد.

فرمان هایی که شما برای ایجاد دایرکتوری ها استفاده می کنید mkdir است. این مقاله راه اصلی برای ایجاد دایرکتوری ها در لینوکس و همچنین پوشش همه سوئیچ های موجود را نشان می دهد.

چگونه یک دایرکتوری جدید ایجاد کنیم

ساده ترین راه ایجاد دایرکتوری جدید به شرح زیر است:

mkdir <نام پوشه>

به عنوان مثال، اگر می خواهید یک پوشه را در زیر پوشه خانه خود به نام test امتحان کنید، یک پنجره ترمینال را باز کنید و اطمینان حاصل کنید که در پوشه خانه خود هستید (از دستور cd ~ استفاده کنید).

آزمون mkdir

تغییر مجوز دایرکتوری جدید

پس از ایجاد یک پوشه جدید، ممکن است بخواهید مجوزها را تنظیم کنید تا فقط یک کاربر خاص بتواند به پوشه دسترسی پیدا کند و به این ترتیب برخی افراد بتوانند فایلها را در پوشه ویرایش کنند، اما برخی دیگر فقط خواندنی هستند.

در بخش آخر، من به شما نشان دادم که چگونه یک دایرکتوری به نام test ایجاد کنید. اجرای دستور ls شما مجوز هایی برای آن دایرکتوری را نشان می دهد:

ls -lt

شانس شما چیزی در این خطوط وجود دارد:

drwxr-xr-x 2 گروه مالک 4096 مارس 19:34 آزمون

بیت هایی که ما علاقه مندیم، مالک و گروه drwxr-xr-x هستند

d به ما می گوید که تست دایرکتوری است.

سه کاراکتر اول بعد از d مجوزهای مالک برای دایرکتوری مشخص شده توسط نام مالک است.

سه شخصیت بعدی مجوز گروه برای فایل مشخص شده توسط نام گروه است. باز هم گزینه های r، w و x هستند. - به این معنی است که مجوزی از دست رفته است. در مثال بالا هر کس متعلق به گروه می تواند به پوشه دسترسی پیدا کند و فایل ها را بخواند اما نمی تواند به پوشه آن را بنویسد.

سه کاراکتر نهایی، مجوزهایی است که همه کاربران دارند و همانطور که در مثال بالا دیده می شود، همانند مجوزهای گروه است.

برای تغییر مجوز برای یک فایل یا پوشه می توانید از دستور chmod استفاده کنید. دستور chmod به شما اجازه می دهد تا 3 عدد را مشخص کنید که مجوز را تعیین می کنند.

برای به دست آوردن مخلوط مجوزها، اعداد را با هم ترکیب کنید. به عنوان مثال برای خواندن و اجرای مجوز، تعداد مورد نیاز شما 5 است، برای خواندن و نوشتن مجوز شماره 6 است و برای دریافت نوشتن و اجرای مجوز تعداد 3 است.

به یاد داشته باشید لازم است 3 عدد را به عنوان بخشی از دستور chmod مشخص کنید. شماره اول برای مجوزهای مالک است، شماره دوم برای مجوزهای گروهی است و آخرین شماره برای همه افراد دیگر است.

به عنوان مثال برای دریافت مجوز کامل مالک، خواندن و اجرای مجوزها در گروه و هیچ مجوزی برای هر کس دیگری را تایپ کنید:

آزمون chmod 750

اگر میخواهید نام گروهی که دارای یک پوشه است را تغییر دهید، از دستور chgrp استفاده کنید.

به عنوان مثال، تصور کنید که می خواهید یک دایرکتوری ایجاد کنید که تمام حسابداران شرکت شما بتوانند به آن دسترسی پیدا کنند.

اول از همه، با وارد کردن موارد زیر حسابهای گروهی ایجاد کنید:

حسابهای groupadd

اگر مجوز صحیح ایجاد یک گروه را نداشته باشید، ممکن است لازم باشد از sudo برای کسب امتیازات اضافی استفاده کنید یا با استفاده از دستور su با حساب مجوز معتبر تغییر دهید.

اکنون می توانید گروه را برای یک پوشه تغییر دهید با تایپ کردن موارد زیر:

حساب chgrp <نام پوشه>

مثلا:

آزمون حساب chgrp

برای دادن هر کس در گروه حساب، خواندن، نوشتن و اجرای دسترسی و صاحب نظر را می دهد، اما فقط برای خواندن فقط به همه ی دیگر می توانید از دستور زیر استفاده کنید:

آزمون chmod 770

برای اضافه کردن یک کاربر به گروه حساب، احتمالا می خواهید از دستور زیر استفاده کنید:

usermod -a -G حساب

دستور بالا گروه حساب را به لیست گروه های ثانویه که کاربر به آن دسترسی دارد اضافه می کند.

نحوه ایجاد دایرکتوری و تنظیم مجوز در همان زمان

شما می توانید یک پوشه ایجاد کنید و مجوز های آن پوشه را همزمان با استفاده از دستور زیر تنظیم کنید:

mkdir -m777 <نام پوشه>

دستور بالا پوشه ای را که همه به آن دسترسی دارند ایجاد می کند. این بسیار نادر است که شما می خواهید هر چیزی را با این نوع مجوز ایجاد کنید.

ایجاد یک پوشه و هر والدینی که مورد نیاز هستند

تصور کنید که می خواهید یک ساختار دایرکتوری ایجاد کنید، اما نمی خواهید هر پوشه شخصی را به همراه راه ایجاد کنید و راه خود را در یک درخت کار کنید.

به عنوان مثال، ممکن است پوشه های موسیقی خود را به صورت زیر ایجاد کنید:

حیرت انگیز است که باید پوشه rock را ایجاد کنید، سپس پوشه alice cooper and the queen و سپس پوشه rap و ddre folder و سپس پوشه جاز و سپس پوشه louisjordan را ایجاد کنید.

با مشخص کردن سوئیچ زیر می توانید تمام پوشه های مادر را در پرواز ایجاد کنید، اگر قبلا وجود نداشته باشند.

mkdir -p

برای مثال، برای ایجاد یکی از پوشه هایی که در بالا ذکر شد، دستور زیر را امتحان کنید:

mkdir -p ~ / موسیقی / راک / alicecooper

تأییدیه یک دایرکتوری ایجاد شد

به طور پیش فرض، دستور mkdir به شما نمی گوید که دایرکتوری که ایجاد می کنید با موفقیت ایجاد شد. اگر هیچ خطایی ظاهر نشد، می توانید فرض کنید که آن را داشته باشد.

اگر میخواهید خروجی عمدهای تر داشته باشید تا بتوانید بدانید چه چیزی ایجاد شده است، از کلید زیر استفاده کنید.

mkdir -v

خروجی در امتداد خطوط mkdir قرار خواهد گرفت: directory / path / to / directoryname ایجاد شده است .

با استفاده از & # 34؛ mkdir & # 34؛ در Shell Script

گاهی اوقات شما می خواهید از فرمان "mkdir" به عنوان بخشی از یک اسکریپت پوسته استفاده کنید. به عنوان مثال، بیایید به یک اسکریپت که یک مسیر را می پذیرد نگاه کنیم. هنگامی که اسکریپت اجرا می شود، پوشه را ایجاد می کند و یک فایل متنی به نام hello اضافه می کند.

#! / bin / bash

mkdir $ @

cd $ @

سلام سلام

خط اول باید در هر اسکریپتی که شما نوشتید وارد شود و برای نشان دادن این است که این در واقع یک اسکریپ BASH است.

دستور "mkdir" برای ایجاد یک پوشه استفاده می شود. "$ @" ( همچنین به عنوان پارامترهای ورودی شناخته می شود ) در انتهای خط 2 و 3 با مقدار شما تعیین می شود هنگام اجرای اسکریپت جایگزین می شود.

دستور "cd" به دایرکتوری که مشخص می کنید تغییر می کند و در نهایت دستور لمسی یک فایل خالی به نام hello ایجاد می کند.

شما می توانید اسکریپت را برای خودتان امتحان کنید. برای انجام این کار، این دستورالعمل ها را دنبال کنید:

  1. یک پنجره ترمینال را باز کنید (Alt را فشار دهید و T باید آن را انجام دهید)
  2. nano createhellodirectory.sh را وارد کنید
  3. دستورات بالا را در ویرایشگر تایپ کنید
  4. فایل را با فشار دادن CTRL و O در همان زمان ذخیره کنید
  5. خروج از فایل با فشار دادن CTRL و X در همان زمان
  6. مجوزها را با تایپ کردن chmod + x createhellodirectory.sh تغییر دهید
  7. اجرای اسکریپت با تایپ کردن ./createhellodirectory.sh test

هنگام اجرای اسکریپت یک پوشه به نام "test" ایجاد می شود و اگر شما به دایرکتوری ( cd test) تغییر دهید و فهرست فهرست ( ls) را اجرا کنید، یک فایل واحد به نام hello خواهید یافت.

تا کنون خیلی خوب است اما اکنون سعی کنید مرحله 7 را دوباره اجرا کنید.

  1. یک خطا ظاهر می شود که نشان می دهد پوشه در حال حاضر وجود دارد.

چیزهای مختلفی که می توانیم برای بهبود اسکریپت انجام دهیم وجود دارد. به عنوان مثال، اگر پوشه در حال حاضر وجود داشته باشد، ما تا زمانی که وجود ندارد، به آن اهمیتی نمی دهیم.

#! / bin / bash

mkdir-p $ @

cd $ @

سلام سلام

اگر پارامتر -p را بعنوان بخشی از دستور mkdir مشخص کنید، آنگاه اگر پوشه در حال حاضر وجود داشته باشد، اما اگر آن وجود نداشته باشد، آن را ایجاد خواهد کرد.

همانطور که اتفاق می افتد دستور لمسی یک فایل ایجاد می کند اگر آن وجود ندارد اما اگر آن وجود داشته باشد، آن را به سادگی آخرین تاریخ و زمان دسترسی را اصلاح می کند.

تصور کنید که بیانیه لمسی با یک دستور echo جایگزین شده است که متن را به یک فایل به صورت زیر می نویسد:

#! / bin / bash

mkdir-p $ @

cd $ @

اکو "سلام" >> سلام

اگر فرمان "./createhellodirectory.sh test" را دوباره اجرا کنید، اثر آن این خواهد بود که فایل با نام "hello" در پوشه تست بزرگتر و بزرگتر خواهد شد با خطوط بیشتر و بیشتر با کلمه "hello" در آن.

در حال حاضر، این ممکن است یا نه به عنوان در نظر گرفته شده است، اما اجازه دهید در حال حاضر می گویند که این اقدام مطلوب نیست. شما می توانید تست کنید تا اطمینان حاصل کنید که دایرکتوری وجود ندارد قبل از اجرای دستور echo به صورت زیر.

#! / bin / bash

mkdir $ @ 2> / dev / null؛

اگر [$؟ -EQ 0]؛ سپس

cd $ @

اکو "سلام" >> سلام

خروج

فی

اسکریپت فوق روش من ترجیح داده شده برای مدیریت پوشه ها است. دستور mkdir پوشه ای را که به عنوان یک پارامتر ورودی منتقل می شود، ایجاد می کند، اما هر خروجی خطا به / dev / null فرستاده می شود (که به هیچ وجه معنی ندارد).

خط سوم وضعیت خروجی دستور قبلی را که عبارت "mkdir" است، بررسی می کند و اگر آن را موفق کند، اظهارات را تا زمانی که عبارت "fi" رسیده است، اجرا کند.

این بدان معنی است که شما می توانید پوشه را ایجاد کنید و همه چیزهایی را که می خواهید انجام دهید اگر دستور موفقیت آمیز باشد. اگر اگر بخواهید کاری انجام دهید اگر دستور موفق نشد، می توانید به سادگی وارد یک عبارت دیگر بشوید:

#! / bin / bash

mkdir $ @ 2> / dev / null؛

اگر [$؟ -EQ 0]؛ سپس
cd $ @
اکو "سلام" >> سلام
خروج
چیز دیگری
cd $ @
echo "hello"> hello
خروج
فی

در اسکریپت فوق اگر دستور mkdir کار می کند، دستور echo کلمه "hello" را به انتهای فایل به نام hello می فرستد در حالی که اگر آن وجود نداشته باشد فایل جدید ایجاد خواهد شد به نام "hello" با کلمه " سلام "در آن.

این مثال به ویژه عملی نیست، زیرا شما می توانید نتایج مشابهی را به دست آورید، فقط با اجرای اکو hello خط "hello" . نقطه ای از مثال این است که نشان می دهد که شما می توانید دستور mkdir را اجرا کنید، خروجی خطا را پنهان کنید، وضعیت دستور را بررسی کنید تا ببینید آیا موفق شد یا نه و سپس یک مجموعه دستورات را اجرا کنید، اگر دستور mkdir موفق بود و مجموعه دیگری از دستورات اگر آن نبود.