این درس فرمانها زیر را به شما معرفی خواهد نمود:
این چهار فرمان در میان فرمانهای لینوکس دارای رایجترین مورد استفاده هستند. آنها فرمانهای اساسی برای دستکاری فایلها و دایرکتوریها هستند.
اکنون، صادقانه، برخی از وظایف انجام شده با این فرمانها به طور آسانتری با یک مدیر فایل گرافیکی انجام میشوند. با یک مدیر فایل، شما میتوانید یک فایل را از یک دایرکتوری به دیگری بکشید و بیاندازید، قیچی کنید و بچسبانید، و غیره. پس این برنامههای خط فرمان قدیمی برای چه؟
پاسخ در قدرت و انعطاف پذیری است. در حالیکه انجام دستکاری ساده فایل با یک مدیر فایل گرافیکی آسان است، وظایف پیچیده با برنامههای خط فرمان آسانتر میتوانند انجام بشوند. برای مثال، چطور تمام فایلهای HTML را از یک دایرکتوری به دیگری کپی میکردید، اما فقط کپی فایلهایی که در دایرکتوری مقصد وجود نداشتند یا جدیدتر از نگارش موجود در دایرکتوری مقصد بودند؟ به وسیله یک مدیر فایل تا حدی سخت. به وسیله خط فرمان به طور دلپذیر آسان:
[me@linuxbox me]$ cp -u *.html destination
قبل از شروع با فرمانهایمان، لازم است در باره یک ویژگی پوسته که این فرمانها را چنین قدرتمند میسازد صحبت کنم. چون پوسته نام فایلها را زیاد استفاده میکند، برای کمک به شما که گروههای فایلها را به سرعت مشخص نمایید، کاراکترهای مخصوصی فراهم میکند. این کاراکترهای ویژه کاراکترهای عام (wildcards) نامیده میشوند. کاراکترهای عام به شما امکان میدهند نام فایلها را براساس الگوهایی از کاراکترها انتخاب کنید. جدول زیر کاراکترهای عام و آنچه آنها انتخاب میکنند را لیست میکند:
کاراکتر عام | معنی | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
* |
با همه کاراکترها منطبق میگردد |
||||||||||
? |
با هر کاراکتر منفرد منطبق میشود |
||||||||||
[characters] |
بر هر کاراکتری که عضوی از مجموعه characters باشد منطبق میشود. مجموعه کاراکترها میتواند به عنوان یک
|
||||||||||
[!characters] |
با هر کاراکتری که عضوی از مجموعه characters نباشد منطبق میگردد |
با استفاده از کاراکترهای عام ساختن ضوابط بسیار پیچیده برای انتخاب نام فایلها امکانپذیر است. این هم چند مثال از الگوها و آنچه بر آنها منطبق میشوند:
الگو | موارد انطباق |
---|---|
* |
نام تمام فایلها |
g* |
تمام فایلهایی که نامشان با کاراکتر |
b*.txt |
تمام فایلهایی که نام آنها با کاراکتر |
Data??? |
هر فایلی که نام آن باکاراکترهای |
[abc]* |
هر فایلی که نام آن با |
[[:upper:]]* |
هر فایلی که نام آن بایک حرف بزرگ شروع بشود. این یک مثال از کلاس کاراکتر است. |
BACKUP.[[:digit:]][[:digit:]] |
یک مثال دیگرِ کلاسهای کاراکتر. این الگو بر هر نام فایلی که با کاراکترهای |
*[![:lower:]] |
هر نام فایلی که به یک حرف کوچک ختم نمیگردد. |
شما میتوانید از کاراکترهای عام با هر فرمانی که نام فایلها را به عنوان شناسه میپذیرد استفاده کنید.
برنامه cp فایلها و دایرکتوریها را کپی میکند. در این سادهترین شکل، یک فایل واحد را کپی میکند:
[me@linuxbox me]$ cp file1 file2
همچنین میتواند برای کپی چندین فایل (و-یا دایرکتوری) به یک دایرکتوری متفاوت به کار برود:
[me@linuxbox me]$ cp file... directory
یک نکته در باره نشانهگذاری: ... حاکی از آن است که یک فقره میتواند یکبار یا بیشتر تکرار گردد.
مثالهای مفید دیگری از cp و گزینههایش:
فرمان | نتایج |
---|---|
cp file1 file2 |
محتویات |
cp -i file1 file2 |
مانند مورد فوق اگر چه، چون گزینه |
cp file1 dir1 |
محتویات |
cp -R dir1 dir2 |
کپی محتویات دایرکتوری |
فرمان mv فایلها و دایرکتوریها را بر اساس چگونگی کاربرد آن تغییر محل یا تغییر نام میدهد. یک فایل یا بیشتر را به یک دایرکتوری متفاوت منتقل خواهد نمود، یا یک فایل یا دایرکتوری را تغییر نام خواهد داد. برای تعییر نام فایل، به این صورت به کار میرود:
[me@linuxbox me]$ mv filename1 filename2
برای انتقال فایلها (و-یا دایرکتوریها) به دایرکتوری متفاوت:
[me@linuxbox me]$ mv file... directory
مثالهایی از mv و گزینههایش:
فرمان | نتایج |
---|---|
mv file1 file2 |
اگر |
mv -i file1 file2 |
مانند مورد فوق اما، چون |
mv file1 file2 file3 dir1 |
فایلهای |
mv dir1 dir2 |
اگر |
فرمان rm فایلها و دایرکتوریها را پاک (حذف) میکند.
[me@linuxbox me]$ rm file...
همچنین میتواند برای حذف دایرکتوریها به کار برود:
[me@linuxbox me]$ rm -r directory...
مثالهایی از rm و گزینههایش:
فرمان | نتایج |
---|---|
rm file1 file2 |
حذف |
rm -i file1 file2 |
مانند مورد فوق اما، |
rm -r dir1 dir2 |
دایرکتوریهای |
لینوکس دارای فرمان undelete نیست. وقتی شما موردی را با rm حذف کنید، از دست رفته است. اگر با rm محتاط نباشید، شما میتوانید آسیب هولناکی به سیستم خود وارد آورید، مخصوصاً همراه با کاراکترهای عام.
قبل از اینکه rm را با کاراکترهای عام به کار ببرید، این شگرد سودمند را امتحان کنید: به جای آن فرمانتان را با استفاده از ls بسازید. با انجام این کار، میتوانید تأثیر کاراکترهای عام به کار گرفته را قبل از حذف فایلها مشاهده کنید. پس از اینکه فرمانتان را با ls آزمایش کردهاید، فرمان را با کلید جهت-بالا فراخوانی کرده و سپس rm را در فرمان به جای ls جایگزین کنید.
فرمان mkdir برای ایجاد دایرکتوریها به کار میرود. برای استفاده از آن، به سادگی تایپ کنید:
[me@linuxbox me]$ mkdir directory...
چون فرمانهایی که ما در اینجا پوشش دادیم نام چند فایل و دایرکتوری را به عنوان شناسه قبول میکنند، شما میتوانید از کاراکترهای عام برای مشخص کردن آنها استفاده کنید. این هم چند مثال:
فرمان | نتایج |
---|---|
cp *.txt text_files |
کپی تمام فایلهای دایرکتوری کاری فعلی که دارای نامهای ختم شده به کاراکترهای |
mv my_dir ../*.bak my_new_dir |
انتقال دایرکتوری فرعی |
rm *~ |
حذف تمام فایلهای دایرکتوری جاری که به کاراکتر |