بازی کردن با فایل ها و دایرکتوری ها در لینوکس!

slide_10 (1)

در مقاله های قبلی با بخش پایه ای مدیریت فایل آشنا شدیم. اما چگونه می توانیم فایل ها و دایرکتوری های خود را در لینوکس پاک کنیم، کپی بگیریم، جابه جا کنیم و… صادقانه بگم انجام این کار ها با حالت گرافیکی خیلی آسان می باشد اما دستورات قدیمی چه کاربردی دارند؟!

دستکاری کردن فایل ها

در این مقاله شما با دستورات زیر آشنا می شوید:

cp – copy files and directories (کپی کردن یا رو نویسی کردن فایل ها و دایرکتوری ها)
mv – move or rename files and directories (جابه جا کردن یا تغییر نام فایل ها و دایرکتوری ها)
rm – remove files and directories (پاک کردن فایل ها و دایرکتوری ها)
mkdir – create directories (ساختن دایرکتوری)
این دستورات، جزء گروه از دستوراتی هستند که در لینوکس معمولا زیاد استفاده می شوند، همچنین دستورات کاملا پایه ای برای دستکاری کردن فایل ها و دایرکتوری ها می باشند.

صادقانه بگم، بعضی از وظایفی که توسط این دستورات انجام میشه، معمولا خیلی راحت تر با فایل منیجر(مدیریت فایل) گرافیکی قابل انجام هست. با مدیریت فایل(File Manager) شما می تونید فایلی را بکشید و در دایرکتوری دیگر بندازید، کات کردن، پیست(Paste) کردن، پاک کردن و…

اما به چه دلیل از این دستورات قدیمی استفاده می کنیم؟!

جواب به این سوال می تونه این باشه: به علت قدرت و انعطاف پذیری دستورات! در حالی که دستکاری کردن فایل های معمولی با File Manager آسان می باشد، انجام وظایف پیچیده نیز توسط دستورات بسیار آسان می باشند، برای مثال چگونه تمام فایل های HTML داخل یک دایرکتوری را از یک دایرکتوری به دایرکتوری دیگر کپی می کنید؟! انجام این کار با File Manager ّبسیار سخت و با خط فرمان بسیار آسان می باشد:

Wildcards

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

خلاصه ای از Wildcard ها و مفهوم آن ها
Wildcard مفهوم
* شامل همه کاراکتر ها می شود.
? شامل همه تک کاراکتر ها می شود.
[characters] شامل هر کاراکتری که  عضوی از مجموعه characters هست. مجموعه کاراکتر ها بعضی اوقات با POSIX character شناخته یمش شووند مانند جدول:

حروف

POSIX Character Classes
[:alnum:] حروف و عدد
[:alpha:]
[:digit:] عدد
[:upper:] حروف بزرگ
[:lower:] حروف کوچک
[!characters] شامل هر بخشی که character می شود، است.

شاید توانایی Wildcard ها برای شما خیلی جالب و شگفت انگیز باشن،با مثال ها در جدول زیر می تونید به این مسئله پی ببرید:

مثال ها:
الگو تطابق
تمام Filename ها
تمام Filename هایی که با حرف g شروع می شوند.
تمام Filename هایی که با حرف b شروع می شوند و با کاراکتر .txt تمام می شوند.
هر فایلی که با کاراکتر “Data” آغاز می شود و سه کاراکتر دیگر دارد.
تمام فایل هایی که با کاراکتر “abc” شروع، و با هر کاراکتری دیگری ادامه پیدا می کنند.
هر Filename ای که با حرف بزرگ شروع می شود.(مثال برای character class)
مثال دیگر برای character class، در این الگو هر Filename ای که با کاراکتر “BACKUP” شروع می شود، و دقیقا با دو رقم ادامه پیدا می کند.
هر فایلی که با حرف کوچک تمام نمی شود.

شما می توانید از Wildcard ها برای هر دستوری که از مفهوم Filename پیروی می کند استفاده کنید.

cp

برنامه cp برای شما فایل ها و دایرکتوری ها را کپی می کند:

همچنین می تونید با این دستور چندین فایل یا دایرکتوری را داخل دایرکتوری دیگر کپی کنید:

 

نکته:دقت داشته باشید یک آیتم می تواند یک یا چندین بار تکرار شود.

مثال های پرکاربرد دستور cp در جدول زیر:

مثال ها از دستور cp
دستور نتیجه
کپی کردن محتوای file1 به داخل file2 ، اگر file2 وجود نداشته باشد، توسط دستور ساخته و محتوای file1 در آن قرادر داده می شود.در صورت وجود file2 به راحتی محتوای file1 در آن کپی می شود.
مانند مثال بالا اما با کمی تفاوت، یعنی با اضافه شدن آپشن (“i” (interactive- اگر file2 وجود داشته باشد، قبل از کپی کردن محتوای file1 از شما اجازه می گیرد.
کپی کردن file1 درون یک دایرکتوری(زیر شاخه های دایرکتوری جاری باید باشد.)
کپی کردن محتوای dir1 در dir2، در صورت وجود داشتن dir2 ،(دایرکتوری dir1 در آن ذخیره می شود) در غیر این صورت یک دایرکتوری جدید به نام dir2 با محتوای dir1 ایجاد می شود.

mv

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

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


برای جابه جا کردن به یک دایرکتوری متفاوت:


مثال برای دستور mv وآپشن های رایج آن را می توانید در جدول زیر مشاهده کنید:

مثال های مختلف دستور mv
دستور نتیجه
اگر file2 وجود نداشته باشد، نام file1 به آن تغییر می کند، اگر وجود داشته باشد محتوای file1 جایگزین file2 می شود.
مانند بالا، و با اضافه شدن آپشن (“i” (interactive- اگر file2 وجود داشته باشد، برای جایگزین کردن محتوا از شما اجازه می گیرد.
فایل های file1,file2,file3 به دایرکتووری “dir1” جابه جا می شوند، اگر dir1 وجود نداشته باشد، شما با ارور مواجه می شوید
اگر dir2 وجود نداشته باشد، سپس نام دایرکتوری “dir1” به “dir2” تغغیر می کند، اگر “dir2” وجود داشته باشد، دایرکتوری “dir1” به دایرکتوری “dir2” جابه جا می شود.

rm

دستور rm فایل ها و دایرکتوری ها را پاک می کند.


همچنین برای پاک کردن دایرکتوری ها استفاده میشه:


مثال ها برای دستور rm و آپشن هایی که شامل می شود را در جدول زیر می بینید:

مثال برای دستور rm
دستور نتایج
پاک کردن file1 و file2
مانند مثال بالا، به همراه (“i “(interactive- ” برای پاک تک تک فایل ها از شما مجوز می یگیرد.
دایرکتوری “dir1” و “dir2” با تمام محتوایشان پاک می شوند.

mkdir

mkdir برای ساختن دایرکتوری استفاده می شود، مانند مثال زیر و بسیار آسان:


 

استفاده دستورات با wildcards

ما در این مقاله بعضی از دستورات را پوشش دادیم که با name فایل ها و دایرکتوری ها سر و کار دارند، شما می توانید برای استفاده مفید در از این دستورات از wildcards ها استفاده کنید، در جدول زیر چند مثال را قرار داده ایم:

مثال دستورات با استفاده از Wildcards
Command Results
کپی کردن تمام فایل ها در دایرکتوری جاری که با “txt.” تمام می شوند، به دایرکتوری با نام “text_files”
جا به جا کردن دایرکتوری my_dir با تمام فایل هایی که با “bak.” تمام می شوند، از دایرکتوری جاری به دایرکتوری موجود به نام “my_new_dir”
پاک کردن تمام فایل های دایرکتوری جاری که با کاراکتر “~” تمام می شوند،

ارسال نظر

ایمیل شما منتشر نخواهد شد. پر کردن ورودی ها الزامی است. *

*

پنج + ده =