آموزش Linux Essentials - قسمت هشتم
سه شنبه, ۸ تیر ۱۳۹۵، ۰۷:۳۹ ب.ظ
در این قسمت به ادامه مبحث عملیات مربوط به فایل و پوشه میپردازیم، کلاس های کاراکتری، براکت ها، کپی، انتقال، تغییر نام و حذف فایل ها مورد بررسی قرار میگیرند.
کلاسهای کاراکترییک الگوی جستجوی دیگر کلاس کاراکتر است، الگوی جستجوی زیر را در نظر بگیرید:
prog[123].c
prog1.c prog2.c prog3.c
مطابقت میکند. اما با فایلهای زیر خیر:
1. prog.c 2. prog4.c 3. proga.c 4. prog12.c
۲. ۴ معرفی نشده است.
۳. a نیز معرفی نشده است
۴. فقط یک کاراکتر مورد نظر است نه دو تا
یک روش دیگر استفاده از کلاسهای کاراکتری، به کارگیری «محدوده ها» است. به این صورت:
prog[1-9].c [A-Z]log.txt
در خط اول، به جای کل براکت هر رقم دلخواه و در خط دوم، هر حرف بزرگ انگلیسی قرار میگیرد. اکنون به بررسی مثالهای بیشتری میپردازیم:
prog[A-z].c
prog[A-Za-z].c
prog[!A-Za-z].c
براکت ها
عبارات براکت دار مانند عبارت زیر:
{red,yellow,blue}.txt
red.txt yellow.txt blue.txt
mkdir -p python/{first,third,second}Project
پوشه ی python را ایجاد و درون آن سه پوشه به نام firstProject، secondProject و thirdProject ایجاد میکند.
تمرین
۱. دایرکتوری فعلی (دایرکتوری که در آن قرار داریم) شامل فایلهای زیر است:
prog.c prog1.c prog2.c progabc.c prog
p.txt p1.txt p21.txt p22.txt p22.dat
برای هر کدام از الگوهای جستجوی زیر، کدام فایلها صدق میکنند؟
a) prog*.c b) prog?.c c) p?*.c d) p[12]* e) p* f) *.*
۲. تفاوت ls و * ls چیست؟ (میتوانید هر دو را در یک دایرکتوری که شامل چند زیرشاخه است امتحان کنید)
عملیات مربوط به فایلها
کپی، انتقال و حذف
برای کپی کردن فایلها از دستور cp استفاده میکنیم. این کار به دو روش انجام پذیر است:
اگر به cp دو آرگومان بدهید، که یکی از آنها نام فایل مبدأ و دیگری نام فایل مقصد باشد، در این صورت یک کپی یک به یک صورت میگیرد. توجه داشته باشید که در صورت وجود داشتن فایلی با همین نام در مقصد، به شما هشداری داده نمیشود و فایل بازنویسی میشود. برای جلوگیری از آن از آپشن -i استفاده میکنیم. دستور زیر فایل new.txt را از مسیر جاری به پوشه Documents کپی میکند:
$ cp new.txt Documents
$ cp new.txt Documents/1.txt
برای انتقال فایل یا تغییر نام آن از دستور mv استفاده میشود. این دستور نام فایلی را به عنوان آرگومان اول میگیرد و به فایلی با نامی که توسط آرگومان دوم مشخص شده است انتقال میدهد:
$mv new.txt 1.txt
برای حذف فایلها نیز از rm استفاده کنید. دقت کنید که این دستور سطل ذباله ای نمیشناسد و فایلها را برای همیشه حذف میکند!
$ rm list*
$ rm -i list* rm: remove 'list'? rm: remove 'list2.txt'
برای حذف یک دایرکتوری و تمام زیر شاخههای آن از آپشن r- استفاده کنید این آپشن دایرکتوری های خالی را فقط حذف میکند. برای حذف تمامی زیر شاخه ها rf- را به کار برید
قسمت نهم