چگونه فایل ها را در لینوکس مدیریت کنیم؟ چه دستورات مدیریت فایلی در لینوکس وجود دارد؟ چگونه یک فایل یا فولدر را کپی ، تغییر نام و انتقال دهیم؟ چگونه یک فایل را در لینوکس حذف کنیم؟ چگونه یک فولدر یا دایرکتوری در لینوکس حذف کنیم؟ چگونه یک فایل یا فولدر در لینوکس ایجاد کنیم؟ و ... همگی در قالب یک مقاله جامع آموزش لینوکس و مدیریت فایل در لینوکس برای شما عزیزان آماده شده است.
در این قسمت از مطلب آموزشی ما به نحوه استفاده از ابزارهای مقدماتی مدیریت فایل ها در لینوکس می پردازیم ، ما به شما یاد می دهیم که چگونه در لینوکس فایل ها را کپی کنید ، آنها را منتقل کنید و در نهایت جستجو و حذف کنید. طبیعتا قرار است همه این کارها توسط خط فرمان و دستورات لینوکس انجام شود و کاری به محیط گرافیکی نخواهیم داشت.علاوه بر این دستورات ما یاد می گیریم که چگونه از wildcard ها برای مشخص کردن فایل ها استفاده کنیم .
برای مثال شما قرار نیست برای کپی کردن هزاران فایل با پسوند یا قسمتی از اسامی مشترک همه آنها را بصورت تک تک کپی یا move کنید بلکه به سادگی با استفاده از wildcard ها می توانید اینکار را انجام بدهید. در خصوص جستجوی فایل ها ما در این مقاله یاد میگیریم که چگونه فایل ها را با استفاده از پارمترهایی مثل اندازه یا size آنها ، پارامتر نوع یا type و پارامتر تاریخ یا date جستجو کنیم. در انتهای این سری آموزشی ما با دستوراتی مثل dd ، tar ، cpio ، bzipz و unzip نیز برای مدیریت فایل ها آشنا خواهیم شد ، بگذریم و به سراغ اصل مطلب برویم ، در اولین گام می خواهیم فایل ها را کپی کنیم :
شما می توانید با استفاده از دستور cp فایل ها را در لینوکس کپی کنید ، cp مخفف کلمه copy است و مشابه تقریبا همه دستوراتی که در سیستم عامل های خانواده لینوکس و یونیکس وجود دارند بصورت مخفف نوشته می شود. خوب در این قسمت از آموزش ما در توسینسو دو دستور متنوع از copy کردن را به شما یاد می دهیم ، در واقع باید بدانید که ما با استفاده از دستور cp بصورت خالی نمی توانیم folder ها یا پوشه ها را کپی کنیم
و مجبور هستیم که از پارامتری به شکل R که مخفف Recursive یا بازگشتی است برای کپی کردن فایل ها استفاده کنیم ، خوب فرض کنید که با تفاسیری که ما داشته ایم ما در مسیر جاری سیستم یک Folder به نام F1 و دو عدد فایل به نام 1.txt و 2.txt داریم که قرار است دستورات را با این فایل ها تست کنیم ، برای اینکه مطمئن شویم این فایل ها وجود دارند با استفاده از دستور ls اینکار را مشابه زیر وارد می کنیم :
root@itpro-kali:~# ls 1.txt 2.txt F1
همانطور که نتیجه دستور بالا مشاهده می کنید ما دو عدد فایل به نامهای 1.txt و 1.txt در کنار یک پوشه به نام F1 داریم. خوب اگر ما بخوایم محتوای یکی از فایل های بالا را برای مثال 1.txt را کپی کرده و تبدیل به فایلی با همان محتوا با اسم 3.txt بکنیم بایستی دستور زیر را وارد کنیم :
root@itpro-kali:~# cp 1.txt 3.txt root@itpro-kali:~# ls 1.txt 2.txt 3.txt Desktop F1
همانطور که در بالا مشاهده می کنید فایل 3.txt با همان محتوای 1.txt ایجاد شد. حالا فرض کنید که ما قرار است محتویات F1 را بصورت کامل در پوشه ای دیگر به نام F2 کپی کنیم ، برای اینکار اگر به تنهایی از کلید cp استفاده کنید کار انجام نمی شود و بایستی با استفاده از پارامتر –R در در دستور cp آنها را بصورت Recursive با محتویات کپی کنیم ، می توانید نتیجه را در دستورات زیر مشاهده کنید :
root@itpro-kali:~# cp F1 F2 cp: omitting directory `F1' root@itpro-kali:~# cp -R F1 F2 root@itpro-kali:~# ls 1.txt 2.txt 3.txt F1 F2
در دستور اول ما سعی کردیم که F1 را با محتویات درون Folder جدیدی به نام F2 کپی کنیم که با خطای omitting directory مواجه شدیم ، برای حل این مشکل بایستی دستور را با سویچ –R استفاده کنیم که همانطور که در ادامه دستورات مشاهده می کنید کلیه محتویات F1 داخل پوشه ای دیگر به نام F2 کپی شدند. می توانید با استفاده از دستور ls F* محتویات هر دو پوشه F1 و F2 را بصورت مقایسه ای مشابه دستور زیر مشاهده کنید :
root@itpro-kali:~# ls F* F1: 1.txt 2.txt 3.txt F2: 1.txt 2.txt 3.txt
همانطور که در بالا مشاهده می کنید همه محتویات F1 و F2 یکسان هستند. دستور cp فقط همین تعداد پارامتر ندارد و دارای تعداد زیاد پارامتر می باشد ، شما می توانید با استفاده از وارد کردن دستور man cp راهنمای کار کردن با آن را مشاهده کنید و به سادگی از میان آنها انتخاب کنید ، برای مثال همین پارامتر R به دو صورت دیگر قابل استفاده می باشد :
root@itpro-kali:~# man cp CP(1) User Commands CP(1) NAME cp - copy files and directories SYNOPSIS cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... DESCRIPTION Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too. -a, --archive same as -dR --preserve=all --attributes-only don't copy the file data, just the attributes Manual page cp(1) line 1 (press h for help or q to quit)
دستور بالا خروجی manual یا راهنمای استفاده از دستور cp را نمایش می دهد ، مهمترین سویچی که در امتحان بین المللی lpic باید در نظر داشته باشید و البته کاربردی باشد R است که بتوانید پوشه ها را نیز کپی کنید ، در آینده در این خصوص بیشتر صحبت خواهیم کرد.
دستور بعدی که قصد صحبت کردن در خصوص آن را داریم دستور mv است که طبیعتا مخفف کلمه move یا انتقال است ، این دستور بعضا می تواند خیلی خطرناک هم باشد زیرا امکان move کردن به هر جایی را به شما می دهد ، البته استفاده دیگری که می توان از دستور mv کرد rename کردن فایل ها است ، در واقع ما در لینوکس دستوری به نام rename نداریم و بایستی با استفاده از دستور mv اینکار را انجام دهیم ، به مثال زیر توجه کنید ما فایل 1.txt را به فایل a.txt تبدیل می کنیم و خروجی را به شما نمایش می دهیم :
root@itpro-kali:~# mv 1.txt a.txt root@itpro-kali:~# ls 2.txt 3.txt a.txt F1 F2
همانطور که مشاهده کردید فایل 1.txt تبدیل به فایل a.txt شد ، اما اگر بخواهیم یک فایل را به درون یک folder منتقل کنیم ، بایستی به روش زیر عمل کنیم دستور mv سپس نام فایل و بعد از آن مقصدی که قصد move کردن را داریم را مشخص می کنیم ، دستور زیر فایل a.txt را به درون فولدر F1 منتقل می کند :
root@itpro-kali:~# mv a.txt F1 root@itpro-kali:~# ls F* F1: 1.txt 2.txt 3.txt a.txt F2: 1.txt 2.txt 3.txt root@itpro-kali:~#
همانطور که مشاهده می کنید فایل a.txt به درون فولدر F1 منتقل شد. همچنین شما می توانید یک فولدر را بصورت کامل در فولدر دیگر کپی کنید ، برای مثال ما در مثال زیر F1 را بصورت کامل در F2 منتقل می کنیم :
root@itpro-kali:~# mv F1 F2 root@itpro-kali:~# ls 2.txt 3.txt Desktop F2 root@itpro-kali:~# ls F2 1.txt 2.txt 3.txt F1
همانطور که در دستور بالا مشاهده می کنید ما F1 را به داخل F2 منتقل کردیم و محتویات F2 را مشاهده کردیم. خوب شما با استفاده از دستور man mv هم می توانید manual این دستور را مشاهده کنید و سویچ ها و پارامترهای مختلف آن را مشاهده کنید. در قسمت بعدی با دستورات دیگری در خصوص مدیریت فایل با شما در توسینسو خواهیم بود.
در قسمت قبلی از سری آموزش های مدیریت مقدماتی فایل ها در لینوکس به بحث نحوه move کردن ، copy کردن و rename کردن فایل ها و فولدرها در لینوکس پرداختیم ، الان می خواهیم در خصوص نحوه حذف کردن فایل ها و فولدرها صحبت کنیم ، برای اینکار ما از دستوری به نام rm استفاده می کنیم که طبق معمول مخفف شده کلمه remove است . استفاده از دستور rm بسیار ساده است ، کافیست شما دستور rm به علاوه نام فایل مورد نظرتان را مشابه دستور زیر وارد کنید تا فایل مورد نظر حذف شود به مثال زیر دقت کنید که ما فایل a.txt را حذف می کنیم :
root@itpro-kali:~# ls 2.txt 3.txt a.txt F2 root@itpro-kali:~# rm a.txt root@itpro-kali:~# ls 2.txt 3.txt F2
خوب همانطور که دستور بالا مشاهده می کنید ما فایل a.txt را به وسیله دستور rm حذف کردیم . توجه کنید که در برخی از توزیع های لینوکس بصورت پیشفرض سویچ یا پارامتر –i وجود دارد ، این حرف مخفف interactive است و در هر بار وارد کردن دستور rm از شما سئوال می کند که آیا شما مطمئن هستید که می خواهید فایل مورد نظر را حذف کنید یا خیر و در این حالت شما باید حرف y به معنی موافقت را مشابه مثال زیر وارد کنید :
root@itpro-kali:~# rm -i 2.txt rm: remove regular file `2.txt'? y root@itpro-kali:~# ls 3.txt F2
همانطور که در دستور بالا مشاهده می کنید از ما سئوال شد که آیا می خواهید فایل مورد نظر حذف شود یا خیر و پاسخ y یا yes بود. اما به مثال زیر هم توجه کنید ، ما می خواهیم folder ای به نام F2 را حذف کنیم و دستور rm را با روش معمول وارد می کنیم :
root@itpro-kali:~# rm F2/ rm: cannot remove `F2/': Is a directory
همانطور که در نتیجه دستور بالا مشاهده می کنید شما نمی توانید به سادگی یک Folder را با استفاده از دستور rm حذف کنید و بایستی برای اینکار از یک پارامتر به شکل –r استفاده می کنیم ، به مثال زیر دقت کنید ، ما ابتدا محتویات F2 را به شما نمایش داده ایم و سپس با استفاده از دستور rm و پارامتر مورد نظر F2 را با محتویاتش حذف می کنیم ، r مشابه دستور کپی مخفف Recursive است :
root@itpro-kali:~# ls F2 1.txt 2.txt 3.txt F1 root@itpro-kali:~# rm -r F2 root@itpro-kali:~# ls 3.txt
همانطور که در دستور بالا مشاهده می کنید ما F2 را به همراه محتواتش حذف کردیم و دیگر فولدری به این نام وجود نخواهد داشت. اما می خواهیم خطرناکترین دستور حذف در لینوکس و یونیکس را نیز به شما معرفی کنیم ، اگر شما با کاربر root در سیستم login باشید و دستور rm با سویچ های –f و –r را همزمان اجرا کنید در ریشه دایرکتوری ها ، هیچ فایلی در سیستم عامل شما باقی نخواهد ماند
و همه چیز بدون قابلیت بازگردانی حذف خواهند شد ، این ترسناکترین دستوری است که شما در لینوکس برای حذف می توانید استفاده کنید ، هیچوقت این دستور را در لینوکس تست نکنید ، من دستور مورد نظر را بعد از گرفتن snapshot از ماشین مجازی برای شما تست می کنم که قابلیت بازگردانی یا به قول ITPRO دکمه غلط کردم را داشته باشم ، دستور زیر فیهاخالدون لینوکس را حذف می کند :
root@itpro-kali:~# rm -rf /
هیچوقت این دستور را در محیطهای عملیاتی استفاده نکنید. امیدوارم این قسمت از سری آموزشی مدیریت مقدماتی فایل ها در لینوکس هم مورد توجه شما قرار گرفته باشد.
در قسمت های قبلی از سری آموزشی مدیریت مقدماتی فایل ها در لینوکس با نحوه جستجو ، Cut و Copy ، Rename کردن و حذف کردن فایل ها آشنا شدیم. اما ما هنوز به شما آموزش نداده ایم که چگونه یک فایل ایجاد کنید ؟ شما می توانید براحتی با استفاده از دستور touch یک فایل خالی ایجاد کنید ، برای مثال دستور زیر برای شما یک فایل به اسم 4.txt را ایجاد می کند :
root@itpro-kali:~# touch 4.txt root@itpro-kali:~# ls 2.txt 3.txt 4.txt a.txt F2
همانطور که دیدید فایل 4.txt ایجاد شد ، اگر شما دستور touch را برای یکی از فایل هایی که وجود دارد استفاده کنید زمان تغییر یا modified time فایل مورد نظر تغییر می کند ، در واقع این دستور هیچ کاری بر روی فایل های جاری بصورت پیشفرض انجام نمی دهد. برای مثال من دستور touch را برای فایل 4.txt که هیچ محتوایی ندارد دو بار در وهله های زمانی یک دقیقه وارد می کنم و نتیجه را مشاهده خواهید کرد :
root@itpro-kali:~# touch 4.txt root@itpro-kali:~# ls -l 4.txt -rw-r--r-- 1 root root 0 Jun 6 03:53 4.txt root@itpro-kali:~# touch 4.txt root@itpro-kali:~# ls -l 4.txt -rw-r--r-- 1 root root 0 Jun 6 03:54 4.txt
همانطور که در خروجی دستور بالا مشاهده می کنید ، در دستور touch دوم تاریخ تغییرات و زمان عوض شده است و یک دقیقه جلوتر را نمایش می دهد. خوب در ادامه در خصوص نحوه اعمال تغییرات در خصوص فایل ها می پردازیم ، خوب ما در اینجا چند فایل بصورت مثال درست می کنیم. خوب ما یک فولدر به نام unity و یک Folder به نام F1 با محتویات پیشفرض ایجاد می کنیم برای ایجاد کردن این دو فولدر مشابه دستور زیر با استفاده از mkdir این دو پوشه را ایجاد می کنیم :
root@itpro-kali:~# mkdir F1 root@itpro-kali:~# mkdir unity root@itpro-kali:~# ls -l total 28 -rw-r--r-- 1 root root 1688 Jun 5 09:40 2.txt -rw-r--r-- 1 root root 1689 Jun 5 09:46 3.txt -rw-r--r-- 1 root root 0 Jun 6 03:54 4.txt -rw-r--r-- 1 root root 1689 Jun 5 11:35 a.txt drwxr-xr-x 4 root root 4096 Jun 5 09:41 Desktop drwxr-xr-x 2 root root 4096 Jun 6 03:58 F1 drwxr-xr-x 3 root root 4096 Jun 5 10:11 F2 drwxr-xr-x 2 root root 4096 Jun 6 03:58 unity
همانطور که در دستورات بالا مشاهده می کنید ما در خروجی دستور ls می توانیم Folder ها و فایل های ساخته شده را بصورت منظم و مرتب مشاهده کنیم. حالا اگر بخواهیم یک Folder را حذف کنیم با استفاده از دستور rmdir و بردن اسم فولدر مشابه مثال پایین فولدر به وجود آمده را حذف می کنیم :
root@itpro-kali:~# rmdir unity root@itpro-kali:~# ls -l total 24 -rw-r--r-- 1 root root 1688 Jun 5 09:40 2.txt -rw-r--r-- 1 root root 1689 Jun 5 09:46 3.txt -rw-r--r-- 1 root root 0 Jun 6 03:54 4.txt -rw-r--r-- 1 root root 1689 Jun 5 11:35 a.txt drwxr-xr-x 4 root root 4096 Jun 5 09:41 Desktop drwxr-xr-x 2 root root 4096 Jun 6 03:58 F1 drwxr-xr-x 3 root root 4096 Jun 5 10:11 F2
خوب همانطور که در نتیجه دستور بالا مشاهده می کنید ما unity را حذف کردیم. اگر ما در لینوکس بخواهیم نوع یک فایل را تشخیص بدهیم می توانیم از دستوری به نام file و بردن اسم فایل در جلو آن استفاده کنیم ، برای مثال ما دو فایل زیر که یکی از آنها 2.txt و دیگری a.txt است را با استفاده از دستور file مشاهده می کنیم :
root@itpro-kali:~# file 2.txt 2.txt: ASCII text root@itpro-kali:~# file a.txt a.txt: ASCII text root@itpro-kali:~# file * 2.txt: ASCII text 3.txt: ASCII text 4.txt: empty a.txt: ASCII text Desktop: directory F1: directory F2: directory
خوب به نتیجه دستورات بالا دقت کنید ، نوع هر فایل بعد از دستور file نوشته شده است ، ما در دستوری که به شکل file * نشان دادیم در واقع از قابلیتی به نام globing یا wildcard استفاده کردیم و در دستور آخر ما به سیستم عامل گفتیم که در مسیری که وجود دارد هر فایلی که وجود دارا را با ماهیت دقیق به ما نشان دهد . در دوره آموزش لینوکس اسنشیالز و در قسمت مدیریت فایل ، به خوبی می توانید با فایل ها در لینوکس کار کنید.
همانطور که در نتیجه آخرین دستور مشاهده می کنید ، فایل هایی بصورت خالی یا emty و دایرکتوری نمایش داده شده اند. دستور file برای نمایش کلیه اطلاعات در خصوص نوع محتوای یک ماهیت استفاده می شود و در لینوکس همه چیز ماهیت فایل دارند ، در قسمت بعدی از این سری آموزشی ما به شما نحوه استفاده از wildcard ها یا قابلی globing را معرفی خواهیم کرد.
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود